当前位置: 首页 > article >正文

【C++拓展】vs2022使用SQlite3

文章目录

  • 前言
  • 下载所需要的文件
  • 生成lib库
  • vs2022中使用SQlite
  • 示例代码
  • 总结


前言

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 构建高质量的应用程序。


http://www.kler.cn/a/517117.html

相关文章:

  • Vue基础(2)
  • 深入理解三高架构:高可用性、高性能、高扩展性的最佳实践
  • 智能化加速标准和协议的更新并推动验证IP(VIP)在芯片设计中的更广泛应用
  • 基于微信小程序的童装商城的设计与实现(LW+源码+讲解)
  • 25/1/22 算法笔记<ROS2> TF变换
  • qml Timer详解
  • OSCP - Proving Grounds - Image
  • 動態住宅IP提升網站訪問成功率
  • 【机器人学】2-3.六自由度机器人运动学逆解-工业机器人【附MATLAB代码】
  • Git:把单个commit合到本地分支
  • cursor把md转换成pdf
  • 电子应用设计方案102:智能家庭AI鱼缸系统设计
  • Redis面试题每日20道【其三】
  • 在宝塔安装部署mindoc
  • C# 使用HttpClient进行Post请求总是出现超时问题的优化
  • 一文了解二叉树的基本概念
  • AD7606, 逐次逼近型ADC以及一次被GPT坑了的过程.
  • vue + element-ui 组件样式缺失导致没有效果
  • Go中的三种锁
  • 实践深度学习:构建一个简单的图像分类器
  • c语言中的位域详解
  • mac 通过 Homebrew 安装 git 遇到的问题
  • ECS中实现Nginx四层和七层负载均衡以及ALB/NLB实现负载均衡
  • react install
  • Langchain+文心一言调用
  • SOME/IP服务接口