if I could somehow create the following string as a char i cpuld probably get the code to work. sql = "insert into call_data (direction, call_time, dest, trunk_no, file_name)values('";
         sql += details.inout;
         sql += "','";
         sql += details.statime;
         sql += "','";
         sql += details.cidn;
         sql += "'";
         sql +=details.channel;
         sql += "','";
         sql += details.filename;
         sql += "')";
I am getting stuck adding exist chars to the sql char

defined chars ^ ^ sql = "insert into call_data(direction, call_time)values('details.inout','details.statime)"
Do you have any ideas?

Lloydie T


----- Original Message ----- From: "Teg" <[EMAIL PROTECTED]>
To: "Lloyd Thomas" <sqlite-users@sqlite.org>
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: <sqlite-users@sqlite.org>
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 injection attacks. Using the bind() method eliminates that
vulnerability.
Something to consider.

Jay


Here's some example code:

sqlite3*        db;

// connect to database
if ( sqlite3_open( "test.db", &db ) )
 throw "Can't open database";

char* sql;

sql = "SELECT one.test1, two.test2"
    " FROM one"
    " INNER JOIN two ON one.id = two.id"
    ;
sqlite3_stmt*   pStmt;

if ( sqlite3_prepare( db, sql, strlen(sql), &pStmt, NULL ) != SQLITE_OK )
 {
    string str = "Cannot prepare sql: ";
    str += sql[t];
    str += ", Error: ";
    str += sqlite3_errmsg(db);
    throw str.c_str();
 }

bool Loop = true;
while ( Loop )
 switch ( sqlite3_step( pStmt ) )
    {
       case SQLITE_ROW:
          // retrieve the results
          char* p = (char *) sqlite3_column_text( pStmt, 0 );
          string test1  = string( p ? p : "" );

          p = (char *) sqlite3_column_text( pStmt, 1 );
          string test2 = string( p ? p : "" );

          break;
       case SQLITE_DONE:
          Loop = false;
          break;
       case SQLITE_BUSY:
       case SQLITE_LOCKED:
       default:
          string str = "Cannot execute sql: ";
          str += sql[t];
          str += ", Error: ";
          str += sqlite3_errmsg(db);
          throw str.c_str();
          break;
    }

// clean up when finished
sqlite3_finalize( pStmt );

sqlite3_close( db );



--
SqliteImporter and SqliteReplicator: Command line utilities for Sqlite
http://www.reddawn.net/~jsprenkl/Sqlite

Cthulhu Bucks!
http://www.cthulhubucks.com

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



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




--
Best regards,
Teg                            mailto:[EMAIL PROTECTED]


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



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

Reply via email to