确定最后一次回调调用

时间:2015-01-04 08:10:07

标签: c++ sqlite

在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 ++方面更有经验的人才。我仍然有点新手,所以总是欢迎提示。提前谢谢。

1 个答案:

答案 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
}