本文档介绍如何在 C++ 项目中使用 SQLite3 数据库,假设通过 vcpkg 安装了 SQLite3。
安装 SQLite3
首先,确保你已经通过 vcpkg 安装了 SQLite3。可以使用以下命令进行安装:
vcpkg install sqlite3
配置 CMake
在 CMakeLists.txt 文件中,添加以下内容以找到并链接 SQLite3:
cmake
find_package(SQLite3 REQUIRED)
target_link_libraries(your_target PRIVATE SQLite::SQLite3)
由于使用了 Visual Studio 2022,CMake 项目结构需包含 vcpkg 工具链文件。修改 CMakeLists.txt 如下:
cmake
# 设置 vcpkg 工具链文件路径
set(CMAKE_TOOLCHAIN_FILE "<VCPKG_ROOT>/scripts/buildsystems/vcpkg.cmake")
if(DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET)
set(VCPKG_TARGET_TRIPLET "$ENV{VCPKG_DEFAULT_TRIPLET}" CACHE STRING "" FORCE)
endif()
add_executable(use-sqlite3 "use-sqlite3.cpp" "use-sqlite3.h")
if (CMAKE_VERSION VERSION_GREATER 3.12)
set_property(TARGET use-sqlite3 PROPERTY CXX_STANDARD 20)
endif()
find_package(SQLite3 REQUIRED)
target_link_libraries(use-sqlite3 PRIVATE SQLite::SQLite3)
使用 SQLite3
在你的 C++ 代码中,可以包含 SQLite3 的头文件并开始使用它:
#include <iostream>
#include <string>
#include "sqlite3.h"
using namespace std;
int main() {
sqlite3* db;
char* zErrMsg = 0;
int rc;
// 打开数据库
rc = (, &db);
(rc) {
std::cerr << << (db) << std::endl;
;
} {
std::cout << << std::endl;
}
* sqlCreateTable = ;
rc = (db, sqlCreateTable, , , &zErrMsg);
(rc != SQLITE_OK) {
std::cerr << << zErrMsg << std::endl;
(zErrMsg);
} {
std::cout << << std::endl;
}
* sqlInsert = ;
rc = (db, sqlInsert, , , &zErrMsg);
(rc != SQLITE_OK) {
std::cerr << << zErrMsg << std::endl;
(zErrMsg);
} {
std::cout << << std::endl;
}
* sqlUpdate = ;
rc = (db, sqlUpdate, , , &zErrMsg);
(rc != SQLITE_OK) {
std::cerr << << zErrMsg << std::endl;
(zErrMsg);
} {
std::cout << << std::endl;
}
* sqlSelect = ;
rc = (db, sqlSelect, [](* NotUsed, argc,** argv,** azColName){
( i=; i<argc; i++){
cout << azColName[i] << << (argv[i]? argv[i]:) << endl;
}
cout << endl;
;
}, , &zErrMsg);
(rc != SQLITE_OK) {
std::cerr << << zErrMsg << std::endl;
(zErrMsg);
} {
std::cout << << std::endl;
}
(db);
std::cout << << std::endl;
;
}


