gpt4 book ai didi

C Sqlite3,当我使用sqlite3_exec函数和select语句时如何知道表是否为空?

转载 作者:行者123 更新时间:2023-11-30 17:42:38 24 4
gpt4 key购买 nike

我有一个SQLite3的select语句,我想使用sqlite3_exec函数,我怎么知道执行sql语句后,结果是0行,没有找到匹配等。我可以定义一个变量,在回调函数中更改该变量。我的代码如下:

  char *selectSql = NULL;
int flag = 0;
asprintf(&selectSql, "SELECT * FROM %s WHERE id=\"%s\"", SESSION_TABLE_NAME, sessionId);
rc = sqlite3_exec(db, selectSql, callback, (void*)data, &zErrMsg);

//if the flag == 0, there is 0 rows found;
if( flag == 0){
//do something;
}
//callback function
callback(void *data, int argc, char **argv, char **azColName)
{
sessionCount = 1;
//do something;
}

但我认为这不是一个好主意,有什么好主意吗?

最佳答案

空表上的 SELECT 将没有匹配项。 “0 行”或“未找到匹配项”之间没有区别。您可以检查是否发生“0行”(我假设您在空表上执行SELECT时说“0行”)检查SELECT COUNT() FROM table.

关于C Sqlite3,当我使用sqlite3_exec函数和select语句时如何知道表是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20466650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com