Your examples suggest that actually sqlite3-bind_text "is not
accepting std::string", not sqlite3_prepare_v2. But how exactly it
"doesn't accept"?
You pass SQLITE_STATIC as 5th parameter there; are you sure you don't
destroy or change your strings before statement is executed?


Pavel

On Tue, Mar 1, 2011 at 10:43 AM,  <pcun...@fsmail.net> wrote:
> Maybe I am to sleepy, but sqlite3_prepare_v2 is not accepting a std::string 
> as a parameter in the following example:
>
>
> // Setup table structure
>
> SQLiteCommand("CREATE TABLE IF NOT EXISTS USR_EVENTS(AID INTEGER PRIMARY KEY 
> AUTOINCREMENT,USER_ID BIGINT,GROUP_ID BIGINT,SIS_EVENTS_PTR BIGINT");
> SQLiteCommand("CREATE INDEX index_name3 ON USR_EVENTS   (USER_ID)");
> SQLiteCommand("CREATE INDEX index_name4 ON USR_EVENTS   (GROUP_ID)");
> SQLiteCommand("CREATE INDEX index_name5 ON USR_EVENTS   (SIS_EVENTS_PTR)");
> SQLiteCommand("INSERT INTO USR_EVENTS (USER_ID, GROUP_ID, SIS_EVENTS_PTR) 
> VALUES ('0', '3', '1')");
>
>
> // This query works
> sCMD = "select AID, SIS_EVENTS_PTR from USR_EVENTS where (AID > '0') and 
> (USER_ID = '2' or GROUP_ID = '1' or GROUP_ID = '3')";
>
> // This query works
> sCMD = "select AID, SIS_EVENTS_PTR from USR_EVENTS where (AID > :1) and 
> (USER_ID = :2 or GROUP_ID = :3 or GROUP_ID = :4)";
> sqlite3_prepare_v2(ppDb, sCMD.c_str(), -1, &sql_statement_local, NULL);
> sqlite3_bind_text(sql_statement_local, 1, "0", 1,SQLITE_STATIC);
> sqlite3_bind_text(sql_statement_local, 2, "2", 1,SQLITE_STATIC);
> sqlite3_bind_text(sql_statement_local, 3, "1", 1,SQLITE_STATIC);
> sqlite3_bind_text(sql_statement_local, 4, "3", 1,SQLITE_STATIC);
>
> // PROBLEM !!! This does not work??? why???
> std::string sAID = "0";
> std::string USER_ID = "2";
> std::string GROUP_IDa = "1";
> std::string GROUP_IDb = "3";
> sCMD = "select AID, SIS_EVENTS_PTR from USR_EVENTS where (AID > :1) and 
> (USER_ID = :2 or GROUP_ID = :3 or GROUP_ID = :4)";
> sqlite3_prepare_v2(ppDb, sCMD.c_str(), -1, &sql_statement_local, NULL);
> sqlite3_bind_text(sql_statement_local, 1, sAID.c_str(), 1,SQLITE_STATIC);
> sqlite3_bind_text(sql_statement_local, 2, USER_ID.c_str(), 1,SQLITE_STATIC);
> sqlite3_bind_text(sql_statement_local, 3, GROUP_IDa.c_str(), 1,SQLITE_STATIC);
> sqlite3_bind_text(sql_statement_local, 4, GROUP_IDb.c_str(), 1,SQLITE_STATIC);
>
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to