c++ sqlite3_get_table 遍历结果集,给出正确的例子
时间: 2023-06-17 22:07:09 浏览: 370
本章目标-sqlite3 数据库api函数
下面是一个简单的例子,使用 `sqlite3_get_table` 遍历结果集:
```c++
#include <iostream>
#include <sqlite3.h>
int main() {
sqlite3 *db;
char *errMsg = nullptr;
int result = sqlite3_open("test.db", &db);
if (result != SQLITE_OK) {
std::cout << "Failed to open database: " << sqlite3_errmsg(db) << std::endl;
sqlite3_close(db);
return result;
}
const char *query = "SELECT * FROM users";
char **results = nullptr;
int rows, columns;
result = sqlite3_get_table(db, query, &results, &rows, &columns, &errMsg);
if (result != SQLITE_OK) {
std::cout << "Failed to execute query: " << errMsg << std::endl;
sqlite3_free(errMsg);
sqlite3_close(db);
return result;
}
// 打印每一行的结果
for (int i = 0; i <= rows; ++i) {
for (int j = 0; j < columns; ++j) {
std::cout << results[i * columns + j] << "\t";
}
std::cout << std::endl;
}
sqlite3_free_table(results);
sqlite3_close(db);
return 0;
}
```
这个例子假设有一个名为 `test.db` 的 SQLite 数据库,其中包含一个名为 `users` 的表。它将查询表中的所有行,并打印每一行的结果。
阅读全文