c++ 读取sqlite表中数据
时间: 2023-09-24 12:11:09 浏览: 181
要使用C++读取SQLite表中的数据,你需要使用SQLite C/C++接口。以下是一个简单的示例程序,演示如何连接到SQLite数据库,读取表中的数据并将它们打印出来:
```c++
#include <sqlite3.h>
#include <iostream>
#include <string>
int main(int argc, char** argv) {
sqlite3* db;
char* errMsg = 0;
int rc = sqlite3_open("example.db", &db);
if (rc) {
std::cerr << "Cannot open database: " << sqlite3_errmsg(db) << std::endl;
sqlite3_close(db);
return 1;
}
std::string sql = "SELECT * FROM mytable";
sqlite3_stmt* stmt;
rc = sqlite3_prepare_v2(db, sql.c_str(), -1, &stmt, nullptr);
if (rc != SQLITE_OK) {
std::cerr << "Failed to prepare statement: " << sqlite3_errmsg(db) << std::endl;
sqlite3_close(db);
return 1;
}
while (sqlite3_step(stmt) == SQLITE_ROW) {
int id = sqlite3_column_int(stmt, 0);
std::string name = std::string(reinterpret_cast<const char*>(sqlite3_column_text(stmt, 1)));
std::cout << "ID: " << id << ", Name: " << name << std::endl;
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return 0;
}
```
在这个例子中,我们使用sqlite3_open函数打开SQLite数据库。如果打开数据库失败,我们会输出错误信息并返回1。接下来,我们准备一个SELECT语句,并使用sqlite3_prepare_v2函数将它编译为一个可执行的语句。如果编译失败,我们也会输出错误信息并返回1。然后,我们使用sqlite3_step函数执行语句,并使用sqlite3_column_*函数提取每一行中的数据。最后,我们使用sqlite3_finalize函数释放语句的资源,并使用sqlite3_close函数关闭数据库连接。
请注意,这只是一个简单的示例程序。在实际应用中,你需要根据需要进行更多的错误检查和资源管理。
阅读全文