sqlite3_exec执行查询语句后如何保存查询的信息?
时间: 2023-06-23 12:08:08 浏览: 221
在使用 `sqlite3_exec` 执行查询语句后,可以通过回调函数获取查询结果,然后将结果保存到变量中。以下是一个简单的示例:
```c
#include <stdio.h>
#include <sqlite3.h>
static 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(int argc, char* argv[]){
sqlite3 *db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("test.db", &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return(1);
}
char *sql = "SELECT * FROM my_table";
rc = sqlite3_exec(db, sql, callback, NULL, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
} else {
printf("Operation done successfully\n");
}
sqlite3_close(db);
return 0;
}
```
在上面的示例中,`sqlite3_exec` 执行了一个查询语句 `"SELECT * FROM my_table"`,并将查询结果通过回调函数 `callback` 输出到控制台。你可以修改 `callback` 函数,将查询结果保存到变量中。
阅读全文