在C++中使用SQLite3數據庫時,需要包含SQLite3的頭文件,并使用SQLite3的API進行數據庫操作。以下是一個簡單的示例代碼,演示如何使用SQLite3在C++中創建數據庫、創建表、插入數據、查詢數據等操作:
#include <iostream>
#include <sqlite3.h>
int main() {
sqlite3* db;
char* errorMessage;
// 打開數據庫
int rc = sqlite3_open("test.db", &db);
if (rc) {
std::cerr << "Can't open database: " << sqlite3_errmsg(db) << std::endl;
return 1;
} else {
std::cout << "Opened database successfully" << std::endl;
}
// 創建表
const char* sql = "CREATE TABLE COMPANY("
"ID INT PRIMARY KEY NOT NULL,"
"NAME TEXT NOT NULL,"
"AGE INT NOT NULL,"
"ADDRESS CHAR(50),"
"SALARY REAL );";
rc = sqlite3_exec(db, sql, NULL, 0, &errorMessage);
if (rc != SQLITE_OK) {
std::cerr << "SQL error: " << errorMessage << std::endl;
sqlite3_free(errorMessage);
} else {
std::cout << "Table created successfully" << std::endl;
}
// 插入數據
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
"VALUES (1, 'Paul', 32, 'California', 20000.00);";
rc = sqlite3_exec(db, sql, NULL, 0, &errorMessage);
if (rc != SQLITE_OK) {
std::cerr << "SQL error: " << errorMessage << std::endl;
sqlite3_free(errorMessage);
} else {
std::cout << "Record inserted successfully" << std::endl;
}
// 查詢數據
sql = "SELECT * FROM COMPANY;";
rc = sqlite3_exec(db, sql, callback, 0, &errorMessage);
if (rc != SQLITE_OK) {
std::cerr << "SQL error: " << errorMessage << std::endl;
sqlite3_free(errorMessage);
}
// 關閉數據庫
sqlite3_close(db);
return 0;
}
在上面的示例中,我們首先使用sqlite3_open
函數打開一個名為test.db
的數據庫,然后使用sqlite3_exec
函數執行SQL語句來創建表、插入數據和查詢數據。需要注意的是,sqlite3_exec
函數的第三個參數是一個回調函數,用來處理查詢結果。在實際使用中,需要根據具體需求來調整和完善代碼。