Hi,
I can't get the quick_check instruction to work but I'm sure that I
must be doing something really stupid. It seems like my callback
function isn't invoked. I have this (just for testing) struct which
should be initialised properly when the callback is invoked, but the
values are always unchanged after sqlite3_exec(). Take for instance
the struct sq member "argc". That struct member is always "-1" after
sqlite3_exec().
Could someone help me and point out what I'm doing wrong here? I'm
using SQlite3 3.4.0. My code is below.
Thanks a lot,
jules
struct sq {
int argc;
char *argv;
};
static int
check_callback(void *hook,
int argc,
char **argv,
char **azColName)
{
struct sq *data = (struct sq*)hook;
data->argc = argc;
data->argv = (NULL != argv[0]) ? strdup(argv[0]) : NULL;
return 0;
}
static int
quick_check(sqlite3 *db)
{
int rc;
struct sq db_ok;
db_ok.argc = -1;
db_ok.argv = NULL;
rc = sqlite3_exec(db, "pragma quick_check;", check_callback,
(void*)&db_ok, NULL);
printf("%s(%d) - argc = %d", __FILE__, __LINE__, db_ok.argc);
if (db_ok.argv)
printf("%s(%d) - argv[0] = %s", __FILE__, __LINE__, db_ok.argv);
else
printf("%s(%d) - argv[0] = NULL", __FILE__, __LINE__);
return 0;
}
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users