使用sqlite3_exec查询数据记录,并回传查询结果
时间: 2024-03-02 14:52:49 浏览: 73
sqlite3.exe工具...
5星 · 资源好评率100%
好的,以下是使用sqlite3_exec查询数据记录的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
int callback(void *data, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); // 输出查询结果
}
printf("\n");
return 0;
}
int main(void) {
sqlite3 *db;
char *errMsg = NULL;
int rc;
const char *sql = "SELECT * 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, NULL, &errMsg); // 执行查询语句
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", errMsg);
sqlite3_free(errMsg);
}
sqlite3_close(db); // 关闭数据库连接
return 0;
}
```
在上面的示例代码中,我们使用了sqlite3_open打开数据库连接,然后使用sqlite3_exec执行查询语句,将查询结果传递给回调函数callback,最后在回调函数中输出查询结果。需要注意的是,在使用sqlite3_exec时,第四个参数可以传递回调函数所需要的数据,这里我们传递了NULL,因为在回调函数中不需要使用任何外部数据。
阅读全文