Try using SQLITE_TRANSIENT instead of STATIC.
Michael D. Black Senior Scientist NG Information Systems Advanced Analytics Directorate ________________________________________ From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on behalf of pcun...@fsmail.net [pcun...@fsmail.net] Sent: Tuesday, March 01, 2011 9:43 AM To: sqlite-users@sqlite.org Subject: EXT :[sqlite] sqlite3_prepare_v2 and std::string using SQLite 3.7.5 - BUG or me? 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