Re: Re[2]: [sqlite] A lillte help adding sqlite to a c program

2006-09-10 Thread Lloyd Thomas

Nearly there just a couple of outstanding issues any help apreciated

Error:--
make: Warning: File `logger.cpp' has modification time 45 s in the future
g++  -c -Wall -O -g logger.cpp -o logger.o
logger.cpp: In function `void* start_one_channel(void*)':
logger.cpp:607: warning: format argument is not a pointer (arg 6)
logger.cpp:629: error: jump to case label
logger.cpp:603: error:   crosses initialization of `char*zErrMsg'
make: *** [logger.o] Error 1



code sample:---
char *zErrMsg = 0;
   char sql[200];
   int rc;
   sqlite3 *db;
   sprintf(sql, "insert into call_data (direction, call_time, dest, 
trunk_no, file_name)values('%s','%s','%s','%s','%s')", details.inout, 
details.statime,details.cidn,channel,details.filename);

   rc = sqlite3_open("/var/tmp/logger/database/logger.db", &db);
   rc = sqlite3_exec(db, sql, NULL, 0, &zErrMsg);
   if( rc!=SQLITE_OK ){
   //fprintf(stderr, "SQL error: %s\n", zErrMsg);
   sqlite3_free(zErrMsg);
   }
   sqlite3_close(db);
   LOGIT("[%02d] sql string = %s\n",channel,sql);


 // Clear out details ready for next call
 details.inout[0] = 0;
 details.filename[0] = 0;
 details.statime[0] = 0;
 details.endtime[0] = 0;
 details.cidn[0] = 0;
 details.cidt[0] = 0;
 strcpy(details.term, "");
   break;

default:  // Any thing else ??
 break;

}
break;
-


- Original Message - 
From: <[EMAIL PROTECTED]>

To: 
Sent: Sunday, September 10, 2006 1:32 PM
Subject: Re: Re[2]: [sqlite] A lillte help adding sqlite to a c program


On Sun, 10 Sep 2006 13:02:58 +0100, you wrote:


Thanks Teg,
I have been trying to do using a basic example but still
running into problems. Can you expand a little more on your example below.
This is where I am so far.
I am getting a bit closer bit still getting some errors. clearly I am still
getting something wrong with the format of snprintf. any ideas?


Hello Lloydie

If you use a MS Compiler like VC++ 6 or VC++ 7 Net you can look at
my HP. There is a little Example and a Wrapperclass simple to
understand, desgined to handle small Databases.

http://www.thlu.de

Best Regards
Thomas


-
To unsubscribe, send email to [EMAIL PROTECTED]
-


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: Re[2]: [sqlite] A lillte help adding sqlite to a c program

2006-09-10 Thread tls
On Sun, 10 Sep 2006 13:02:58 +0100, you wrote:

>Thanks Teg,
> I have been trying to do using a basic example but still 
>running into problems. Can you expand a little more on your example below. 
>This is where I am so far.
>I am getting a bit closer bit still getting some errors. clearly I am still 
>getting something wrong with the format of snprintf. any ideas?

Hello Lloydie 

If you use a MS Compiler like VC++ 6 or VC++ 7 Net you can look at
my HP. There is a little Example and a Wrapperclass simple to
understand, desgined to handle small Databases. 

http://www.thlu.de

Best Regards
Thomas


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: Re[2]: [sqlite] A lillte help adding sqlite to a c program

2006-09-10 Thread Lloyd Thomas

Thanks Teg,
   I have been trying to do using a basic example but still 
running into problems. Can you expand a little more on your example below. 
This is where I am so far.
I am getting a bit closer bit still getting some errors. clearly I am still 
getting something wrong with the format of snprintf. any ideas?

errors:
logger.cpp: In function `void* start_one_channel(void*)':
logger.cpp:607: error: invalid conversion from `const char*' to `size_t'
logger.cpp:607: error:   initializing argument 2 of `int snprintf(char*, 
size_t, const char*, ...)'

logger.cpp:629: error: jump to case label
logger.cpp:603: error:   crosses initialization of `char*zErrMsg'
make: *** [logger.o] Error 1
---

code:-
char *zErrMsg = 0;
   char *sql;
   int rc;
   sqlite3 *db;
   snprintf(sql, "insert into call_data (direction, call_time, dest, 
trunk_no, file_name)values(\'%s\',\'%s\',\'%s\',\'%s\',\'%s\')", 
details.inout, details.statime,details.cidn, 
details.channel,details.filename);//line 607
   rc = sqlite3_open("/var/tmp/logger/database/logger.db", &db); //line 
608

   rc = sqlite3_exec(db, sql, NULL, 0, &zErrMsg);
   if( rc!=SQLITE_OK ){
   //fprintf(stderr, "SQL error: %s\n", zErrMsg);
   sqlite3_free(zErrMsg);
   }
   sqlite3_close(db);
---

Lloydie T


- Original Message - 
From: "Teg" <[EMAIL PROTECTED]>

To: "Lloyd Thomas" 
Sent: Sunday, September 10, 2006 12:47 AM
Subject: Re[2]: [sqlite] A lillte help adding sqlite to a c program



Hello Lloyd,

You need to escape the quotes. Remember in C and C++ " means the
beginning or end of a literal string so, when you want to embed quotes
in a string you have to escape them. Probaby \".

You'd be better off using the paramaterized version of the SQL

std::string sql = "insert into call_data (direction, call_time, dest, 
trunk_no,

file_name)values(?,?,?,?,?);";

Then bind the actual parameters after the fact.

C


Saturday, September 9, 2006, 7:02:43 PM, you wrote:

LT> Jay, Thanks for your reply.
LT> I gave it a try with and got a few errors. as follows
LT> ---
LT> logger.cpp:609: error: invalid operands of types `const char[80]' and
LT> `char[4]' to binary `operator+'
LT> logger.cpp:615: error: `t' was not declared in this scope
LT> logger.cpp:615: warning: unused variable 't'
LT> logger.cpp:634: error: jump to case label
LT> logger.cpp:631: error:   crosses initialization of `std::string test2'
LT> logger.cpp:628: error:   crosses initialization of `std::string test1'
LT> logger.cpp:637: error: jump to case label
LT> logger.cpp:631: error:   crosses initialization of `std::string test2'
LT> logger.cpp:628: error:   crosses initialization of `std::string test1'
LT> logger.cpp:638: error: jump to case label
LT> logger.cpp:631: error:   crosses initialization of `std::string test2'
LT> logger.cpp:628: error:   crosses initialization of `std::string test1'
LT> logger.cpp:639: error: jump to case label
LT> logger.cpp:631: error:   crosses initialization of `std::string test2'
LT> logger.cpp:628: error:   crosses initialization of `std::string test1'
LT> logger.cpp:641: error: `t' was not declared in this scope
LT> logger.cpp:641: warning: unused variable 't'
LT> logger.cpp:664: error: jump to case label
LT> logger.cpp:621: error:   crosses initialization of `bool Loop'
LT> logger.cpp:634: warning: destructor needed for `test2'
LT> logger.cpp:634: warning: where case label appears here
LT> logger.cpp:634: warning: (enclose actions of previous case statements
LT> requiring destructors in their own scope.)
LT> logger.cpp:637: warning: destructor needed for `test2'
LT> logger.cpp:637: warning: where case label appears here
LT> logger.cpp:638: warning: destructor needed for `test2'
LT> logger.cpp:638: warning: where case label appears here
LT> logger.cpp:639: warning: destructor needed for `test2'
LT> logger.cpp:639: warning: where case label appears here
LT> make: *** [logger.o] Error 1
LT> --
LT> line 609 =
LT> sql = "insert into call_data (direction, call_time, dest, trunk_no,
LT> 
file_name)values('"+details.inout+"','"+details.statime+"','"+details.cidn+"'"+details.channel+"','"+details.filename+"')";







LT> - Original Message - 
LT> From: "Jay Sprenkle" <[EMAIL PROTECTED]>

LT> To: 
LT> Sent: Saturday, September 09, 2006 11:16 PM
LT> Subject: Re: [sqlite] A lillte help adding sqlite to a c program



On 9/9/06, Lloyd Thomas <[EMAIL PROTECTED]> wrote:

I know nothing of C++ and therefore need a lilte help editing a C++ app
to
insert some records into a database.


here's an example to read from a database.
If you build the sql like you're doing and you use it on the web you
leave yourself
open to sql in