hello list,
I have a question regarding prepared statements. I'm fairly new to
sqlite3 and it's already pretty late, so if I'm overlooking
something obvious please forgive me :) I'm on Windows 7 x64 and
using sqlite-3070800 (amalgamation).
I'm trying to prepare an insert statement, that I will reuse many
times using bound parameters. In a short test application, if I
prepare the statement within the main function everything is fine:
CODE
...
int rc=0;
pDb = (sqlite3*) malloc (sizeof(sqlite3*));
stmt = (sqlite3_stmt*) malloc (sizeof(sqlite3_stmt*));
...
if((rc=sqlite3_prepare_v2(pDb, INSERT_STMT , -1, &stmt, NULL)) !=
SQLITE_OK){
/* ... error ... */
}
sqlite3_step(stmt);
...
\CODE
However, if I try throw this code in a separate function like this,
CODE
int prepareStatement(sqlite3_stmt* stmt, sqlite3* pDb){
int rc=0;
if((rc=sqlite3_prepare_v2(pDb, INSERT_STMT , -1, &stmt, NULL)) !=
SQLITE_OK){
/* ... error ... */
}
return 0;
}
\CODE
it fails as soon as I call sqlite3_step(stmt) afterwards. The
debugger stops at:
sqlite3_mutex_enter(db->mutex);
At first I thought I was doing smthg wrong during memory
allocation, but everything seems to be fine there. I'm sure I'm
overlooking an obvious mistake. Maybe somebody can give me a hint!
thanks,
John
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users