使用sqlite3_exec查询数据条数,并回传查询结果
时间: 2024-03-02 10:52:42 浏览: 42
好的,以下是使用sqlite3_exec查询数据条数的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
int callback(void *data, int argc, char **argv, char **azColName){
int *count = (int *)data;
*count = atoi(argv[0]); // 将查询结果转换为整数
return 0;
}
int main(void) {
sqlite3 *db;
char *errMsg = NULL;
int rc, count = 0;
const char *sql = "SELECT COUNT(*) FROM my_table;"; // 查询表中数据条数的SQL语句
rc = sqlite3_open("my_db.db", &db); // 打开数据库
if (rc != SQLITE_OK) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
rc = sqlite3_exec(db, sql, callback, &count, &errMsg); // 执行查询语句
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", errMsg);
sqlite3_free(errMsg);
} else {
printf("Number of rows in the table: %d\n", count); // 输出查询结果
}
sqlite3_close(db); // 关闭数据库连接
return 0;
}
```
在上面的示例代码中,我们使用了sqlite3_open打开数据库连接,然后使用sqlite3_exec执行查询语句,将查询结果传递给回调函数callback并保存在count变量中,最后输出查询结果。需要注意的是,在使用sqlite3_exec时,第四个参数要传递回调函数所需要的数据,这里我们传递了count的地址,以便在回调函数中修改count的值。