自学内容网 自学内容网

【C++拓展】vs2022使用SQlite3


前言

SQLite3 是一种广泛应用的嵌入式数据库,以其轻量、高效和无服务器架构闻名。Visual Studio 2022(VS2022)作为一款强大的 IDE,提供了丰富的工具支持 C++ 开发。在 VS2022 中使用 SQLite3,可以帮助开发者快速集成数据库功能,并实现高效的数据管理。本文将介绍如何在 VS2022 中使用 SQLite3 的关键步骤和注意事项,为开发者提供入门指引。


下载所需要的文件

SQLite
首先需要下载源文件:
在这里插入图片描述
然后下载动态库:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
然后把他们放到一起,如上

生成lib库

win 输入dev打开vs的命令行
在这里插入图片描述
cd进入刚刚的文件夹
在这里插入图片描述
输入:lib /MACHINE:X64 /DEF:sqlite3.def

在这里插入图片描述
在这里插入图片描述
最后生成lib

vs2022中使用SQlite

打开项目属性,VC++目录,把你刚刚的路径填进去:
在这里插入图片描述

然后打开输入,把sqlite3.lib填进去
在这里插入图片描述

示例代码

#include <iostream>
#include <sqlite3.h> // SQLite3 的头文件

// 打开数据库的回调函数
static int callback(void* NotUsed, 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* errMsg = nullptr;
    int rc;

    // 打开或创建数据库
    rc = sqlite3_open("example.db", &db);
    if (rc) {
        std::cerr << "无法打开数据库: " << sqlite3_errmsg(db) << std::endl;
        return rc;
    }
    else {
        std::cout << "成功打开数据库!" << std::endl;
    }

    // 创建表
    const char* createTableSQL =
        "CREATE TABLE IF NOT EXISTS Users("
        "ID INTEGER PRIMARY KEY AUTOINCREMENT, "
        "Name TEXT NOT NULL, "
        "Age INTEGER NOT NULL);";
    rc = sqlite3_exec(db, createTableSQL, nullptr, nullptr, &errMsg);
    if (rc != SQLITE_OK) {
        std::cerr << "创建表失败: " << errMsg << std::endl;
        sqlite3_free(errMsg);
    }
    else {
        std::cout << "表创建成功!" << std::endl;
    }

    // 插入数据
    const char* insertSQL =
        "INSERT INTO Users (Name, Age) VALUES ('Alice', 25), ('Bob', 30);";
    rc = sqlite3_exec(db, insertSQL, nullptr, nullptr, &errMsg);
    if (rc != SQLITE_OK) {
        std::cerr << "插入数据失败: " << errMsg << std::endl;
        sqlite3_free(errMsg);
    }
    else {
        std::cout << "数据插入成功!" << std::endl;
    }

    // 查询数据
    const char* querySQL = "SELECT * FROM Users;";
    rc = sqlite3_exec(db, querySQL, callback, nullptr, &errMsg);
    if (rc != SQLITE_OK) {
        std::cerr << "查询数据失败: " << errMsg << std::endl;
        sqlite3_free(errMsg);
    }
    else {
        std::cout << "数据查询成功!" << std::endl;
    }

    // 关闭数据库
    sqlite3_close(db);
    std::cout << "数据库已关闭。" << std::endl;

    return 0;
}

在这里插入图片描述
如果提示确实dll,则需要:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


总结

在 VS2022 中使用 SQLite3 是实现轻量级数据库存储的高效解决方案。通过配置 SQLite3 库、连接数据库和编写 SQL 操作代码,可以快速搭建起基于 SQLite3 的数据管理功能。对于嵌入式系统、桌面应用和小型项目,SQLite3 是一个理想的选择。然而,在使用过程中,需要注意事务处理和多线程访问等细节,以确保数据一致性和安全性。通过掌握这些知识,开发者能够更好地利用 SQLite3 和 VS2022 构建高质量的应用程序。


原文地址:https://blog.csdn.net/m0_62599305/article/details/145321603

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!