#include <iostream>
#include <sqlite3.h>
// 回调函数,用于处理查询结果
static int callback(void* data, int argc, char** argv, char** azColName) {
for (int i = 0; i < argc; i++) {
std::cout << azColName[i] << " = " << (argv[i] ? argv[i] : "NULL") << std::endl;
}
std::cout << std::endl;
return 0;
}
int main() {
sqlite3* DB;
char* messageError;
// 打开或创建数据库文件
int exit = sqlite3_open("example.db", &DB);
if (exit) {
std::cerr << "Error open DB " << sqlite3_errmsg(DB) << std::endl;
return -1;
} else {
std::cout << "Opened Database Successfully!" << std::endl;
}
// 创建表
std::string sql = "CREATE TABLE IF NOT EXISTS RECORDS("
"ID INT PRIMARY KEY NOT NULL,"
"NAME TEXT NOT NULL,"
"AGE INT NOT NULL);";
exit = sqlite3_exec(DB, sql.c_str(), nullptr, nullptr, &messageError);
if (exit != SQLITE_OK) {
std::cerr << "Error Create Table" << std::endl;
sqlite3_free(messageError);
} else {
std::cout << "Table created Successfully" << std::endl;
}
// 插入数据
sql = "INSERT INTO RECORDS (ID, NAME, AGE) VALUES (1, 'Alice', 30);"
"INSERT INTO RECORDS (ID, NAME, AGE) VALUES (2, 'Bob', 25);"
"INSERT INTO RECORDS (ID, NAME, AGE) VALUES (3, 'Charlie', 35);";
exit = sqlite3_exec(DB, sql.c_str(), nullptr, nullptr, &messageError);
if (exit != SQLITE_OK) {
std::cerr << "Error Insert" << std::endl;
sqlite3_free(messageError);
} else {
std::cout << "Records created Successfully" << std::endl;
}
// 查询数据
sql = "SELECT * FROM RECORDS;";
exit = sqlite3_exec(DB, sql.c_str(), callback, nullptr, &messageError);
if (exit != SQLITE_OK) {
std::cerr << "Error Select" << std::endl;
sqlite3_free(messageError);
}
// 关闭数据库连接
sqlite3_close(DB);
return 0;
}
#include <sqlite3.h> 引入了 SQLite 的库。callback 函数用于处理查询结果,并将每一行的结果打印到控制台。sqlite3_open 函数用于打开或创建一个数据库文件。如果成功,返回的 sqlite3* 指针将用于后续操作。RECORDS 的表,包含 ID、NAME 和 AGE 三个字段。sqlite3_exec 函数执行查询,并通过回调函数处理查询结果。sqlite3_close 函数关闭数据库连接。这段代码展示了如何在 C++ 中使用 SQLite 进行基本的数据库操作。
上一篇:c++恶搞代码
下一篇:c++ std::move
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站