在c ++中,使用sqlite3,回调函数用于从数据库中检索选择结果:
rc = sqlite3_exec(db, query, callback, 0, &sqlErrorMsg);
从数据库返回的每条记录都会调用此函数:
static int callback(void *NotUsed, int argc, char **argv, char **azColName) {
int i;
std::cout << "Called\n";
for(i = 0;i < argc;i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
/** Example **/
//if(last) do something; //to demonstrate that I need access to this information inside of the callback
return 0;
}
我需要一种方法来确定对该函数的最后一次调用(在sql的最后一条记录上)。
我认为这需要一些在c ++方面更有经验的人才。我仍然有点新手,所以总是欢迎提示。提前谢谢。
答案 0 :(得分:0)
解决方案(在帮助下):
rc = sqlite3_exec(db, sql, callback, (void*)rowCount, &zErrMsg);
然后在回调中
static callback(void* rowCount, int argc, char** argv, char** azColName) { //here the integer is converted to hex, but converting it is easy enough
}