C++调用sqlite查询
时间: 2023-09-27 11:08:24 浏览: 47
可以使用sqlite3 C/C++接口来实现对sqlite数据库的查询操作,以下是一个简单的示例:
```c++
#include <sqlite3.h>
#include <iostream>
#include <string>
using namespace std;
int main() {
sqlite3* db;
sqlite3_stmt* stmt;
int rc;
// 打开数据库
rc = sqlite3_open("example.db", &db);
if (rc) {
cerr << "Error opening SQLite database: " << sqlite3_errmsg(db) << endl;
sqlite3_close(db);
return 1;
}
string sql = "SELECT * FROM table_name WHERE column_name='value'";
rc = sqlite3_prepare_v2(db, sql.c_str(), -1, &stmt, NULL);
if (rc != SQLITE_OK) {
cerr << "Error preparing SQL statement: " << sqlite3_errmsg(db) << endl;
sqlite3_close(db);
return 1;
}
while (sqlite3_step(stmt) == SQLITE_ROW) {
// 逐行读取查询结果
int id = sqlite3_column_int(stmt, 0);
string name = (const char*)sqlite3_column_text(stmt, 1);
double value = sqlite3_column_double(stmt, 2);
cout << "id = " << id << ", name = " << name << ", value = " << value << endl;
}
// 释放资源
sqlite3_finalize(stmt);
sqlite3_close(db);
return 0;
}
```
其中,sqlite3_prepare_v2 函数用于准备 SQL 语句,sqlite3_step 函数用于逐行读取查询结果。在读取每一行结果时,可以使用 sqlite3_column_* 函数获取每一列的值。
需要注意的是,以上代码仅仅是一个示例,实际应用中需要根据自己的需求编写更加灵活和安全的代码。