sqlite3使用:

  • 资源下载
  • demo
    • 创建数据表
  • 调试
  • 裸机中安装Sqlite,exe执行程序调用

更详细的sqlite3使用和MFC应用请转到 链接:

资源下载

1、下载sqlite3源码:http://www.sqlite.org/download.html

下载下图所示需要的四份所需文件(X86和X64都要下载)


2.文件解压:
f:盘新建sqlite文件夹并完成解压

3.这里需要使用到vs2017安装目录下的lib.exe和一些其他的依赖库;
直接将vs2017安装目录下的HostX64/x64文件夹拷贝(C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx64)到新文件夹(若x86则要拷贝x86对应的文件夹);
再将步骤2中的sqlite3.dll和sqlite3.def拷贝到这个新文件夹;

4.生成lib文件
在新文件夹中打开powershell,输入:

.\lib.exe /def:sqlite3.def /machine:X64

(如果是x86则最后的参数要换成X86)
ps:如果powershell打开路径不是lib.exe所在路径会发生如下报错

修改后:

5.生成文件
新生成文件:sqlite3.lib (75kb)

demo

创建数据表

1.进入到“F:\sqlite\sqlite-tools-win32-x86-3350500>”
2.开始执行创建语句如下图:

3.新建DEMO 添加运行文件
在该目录下找到刚刚生成的sqlite3.lib;

在sqlite-amalgamation-3180000目录下找到sqlite3.h;
在sqlite-dll-win64-x64-3180000 目录下找到sqlite3.dll;
将上述三个文件拷贝到vs2017的项目源码目录下:

参考链接1:https://blog.csdn.net/jqsad/article/details/72773264
参考链接2:https://blog.csdn.net/xionglifei2014/article/details/80665636

F:\sqlite\sqlite-tools-win32-x86-3350500>sqlite3.exe test.db
SQLite version 3.35.5 2021-04-19 18:32:05
Enter ".help" for usage hints.
sqlite> create table user...> (...> id integer primary key autoincrement,...> name varchar(64),...> age integer...> );
sqlite> .quit
#include <iostream>
#include "sqlite3.h"#pragma comment(lib, "sqlite3.lib")using namespace std;sqlite3 * pDB = NULL;
//增加用户
bool AddUser(const string& sName, const string& sAge);
//删除用户
bool DeleteUser(const string& sName);
//修改用户
bool ModifyUser(const string& sName, const string& sAge);
//查找用户
bool SelectUser();int main() {int res = sqlite3_open("test.db", &pDB);if (res != SQLITE_OK) {cout << "Open database fail!" << endl;return 0;}else {cout << "Open database success" << endl;}AddUser("zhao", "18");添加“赵钱孙李”  //if (!AddUser("zhao", "18")//  || !AddUser("qian", "19")// || !AddUser("sun", "20")//  || !AddUser("li", "21"))//{//   goto QUIT;//}QUIT:sqlite3_close(pDB);system("pause");return 0;
}bool AddUser(const string& sName, const string& sAge)
{string strSql = "";strSql += "INSERT INTO user(name,age)";strSql += "values('";strSql += sName;strSql += "',";strSql += sAge;strSql += ");";char* cErrMsg;int nRes = sqlite3_exec(pDB, strSql.c_str(), 0, 0, &cErrMsg);if (nRes != SQLITE_OK){cout << "add user fail: " << cErrMsg << endl;return false;}else{cout << "add user success: " << sName.c_str() << "\t" << sAge.c_str() << endl;}return true;
}bool DeleteUser(const string& sName)
{string strSql = "";strSql += "delete from user where name='";strSql += sName;strSql += "';";char* cErrMsg;int nRes = sqlite3_exec(pDB, strSql.c_str(), 0, 0, &cErrMsg);if (nRes != SQLITE_OK){cout << "delete user fail: " << cErrMsg << endl;return false;}else{cout << "delete user success: " << sName.c_str() << endl;}return true;
}bool ModifyUser(const string& sName, const string& sAge)
{string strSql = "";strSql += "update user set age =";strSql += sAge;strSql += " where name='";strSql += sName;strSql += "';";char* cErrMsg;int nRes = sqlite3_exec(pDB, strSql.c_str(), 0, 0, &cErrMsg);if (nRes != SQLITE_OK){cout << "modify user fail: " << cErrMsg << endl;return false;}else{cout << "modify user success: " << sName.c_str() << "\t" << sAge.c_str() << endl;}return true;
}static int UserResult(void *NotUsed, int argc, char **argv, char **azColName)
{for (int i = 0; i < argc; i++){cout << azColName[i] << " = " << (argv[i] ? argv[i] : "NULL") << ", ";}cout << endl;return 0;
}bool SelectUser()
{char* cErrMsg;int res = sqlite3_exec(pDB, "select * from user;", UserResult, 0, &cErrMsg);if (res != SQLITE_OK){cout << "select fail: " << cErrMsg << endl;return false;}return true;
}

调试

error LNK2019: 无法解析的外部符号 sqlite3_XXX,

裸机中安装Sqlite,exe执行程序调用

Sqlite3文件下载:
https://www.sqlite.org/download.html
1.下载 sqlite-dll-win32-x86-3140100
2.下载 sqlite-tools-win32-x86-3140100

安装:
先在C盘建一个文件夹 sqlite,
1.把 sqlite-dll-win32-x86-3140100 中解压出来的两个文件(sqlite3.def 和 sqlite3.dll)复制到刚才新建的目录(C:\sqlite)中
2.把 sqlite-tools-win32-x86-3140100 中解压出来的文件 sqlite3.exe 复制到C:\sqlite 目录中
3.添加系统环境变量, 在Path变量值后面添加 C:\sqlite(分号不要忘记了),如下图所示:

接下来测试一下是否安装完成
运行cmd,切换到C盘根目录 C:\sqlite,输入sqlite3,然后回车,如果安装成功的话,会显示sqlite版本号

C++ :sqlite3使用:相关推荐

  1. 如何在sqlite3连接中创建并调用自定义函数

    #!/user/bin/env python # @Time :2018/6/8 14:44 # @Author :PGIDYSQ #@File :CreateFunTest.py '''如何在sql ...

  2. Sqlite3支持的数据类型 日期函数 Sqlite3 函数

    Sqlite3支持的数据类型 NULL INTEGER REAL TEXT BLOB 但实际上,sqlite3也接受如下的数据类型: smallint 16 位元的整数. interger 32 位元 ...

  3. linux qt 连接sqlite3,RedHat 9 Linux下在QT3.1中连接SQLite3全过程详细记录

    作者:zieckey([email]zieckey@yahoo.com.cn[/email]) All Rights Reserved 下文介绍的内容都是基于 Linux RedHat 9.0 平台的 ...

  4. 在CentOS 7.5上升级SQLite3过程实录

    业务起因 我在CentOS 7.5上安装python3.7+Django 3.1.7并创建项目时,发现启动demo例子出错了,出错信息如下: django.core.exceptions.Improp ...

  5. SQLite3简单C++包装类源码示例

    一个比较好的SQLite3 C++ wrapper包装类的通常思路是这样的: 数据库连接类,包含连接池,和sqlite3*,负责与数据库文件的连接问题: 一些create table,insert,u ...

  6. 【数据库】sqlite3数据库备份、导出方法汇总

    [数据库]sqlite3常用命令及SQL语句 目录 1.直接拷贝数据库 2.使用.backup .clone 1)交互式 2)脚本 3.导出到csv文件中(其它格式类似) 1)交互式 2)脚本 3)导 ...

  7. 【数据库】sqlite3常用命令及SQL语句

    [数据库]sqlite3数据库备份.导出方法汇总 一.准备工作 0.安装SQLite3 1)ubuntu命令安装(不是最新版本) sudo apt install sqlite3 2)源码安装(可以安 ...

  8. 【iOS】sqlite3的使用(増删改查)

    目录: 一.sqlite3常用函数 二.将sqlite3集成到项目,实现増删改查 三.封装DBManager 四.Demo 一.sqlite3常用函数及解释 (1)sqlite3_open: 用来创建 ...

  9. sqlite3数据的使用(xcode 7,ios9)

    由于考虑将来还要开发Android版本app,为了移植方便,所以使用了sqlite3来做数据持久化,到时候把sql语句拷过去还能用. 1. 首先用xcode载入sqlite3类库 选择工程的TARGE ...

  10. 怎么让wordpress用sqlite3 搭建轻量级博客系统

    wordpress 默认是用mysql作为数据库支持,这个对个人站长来说还是有点麻烦了些.特别是如果以后网站备份迁移就有点事多了. 之前用django开发自己的博客感觉其实用sqlite3作为数据库插 ...

最新文章

  1. 了解一下爬虫技术方方面面
  2. Kudu:为大数据快速分析量身定制的 Hadoop 存储系统
  3. 大棚骨架搭建好 科学施肥增收增产
  4. dotnet Blazor 用 C# 控制界面行为
  5. vim 函数列表插件
  6. 得到品控手册_得到品控手册 一本令人惊喜的说明书
  7. python创建access表_Access创建表
  8. 我如何使用Python查找有趣的人来关注Medium
  9. numpy 辨异 (五)—— numpy.ravel() vs numpy.flatten()
  10. [转载] python学习-基础教程、深度学习
  11. 《How to Write and publish a scientific paper》 Chapter 2
  12. python PIL生成字母验证图片
  13. java判断文件是否存在_Java判断文件、文件夹是否存在
  14. tomcat7安装以及环境变量配置
  15. 威纶触摸屏与台达DVP系列PLC通信的参数设置和连接电缆
  16. 大漠插件ocr多选字库_大漠ocr识别字库的生成,和使用方法
  17. 什么是宝塔面板,跟服务器之间有什么特别联系?
  18. 好看的原创弹窗公告代码分享
  19. Java千百问_01基本概念(015)_阻塞、非阻塞有什么区别
  20. 2023年兔年好看的头像

热门文章

  1. Java项目中如何更优雅的处理空值?
  2. 记一次Spring boot 和Vue前后端分离的入门培训
  3. 【struts2+hibernate+spring项目实战】Spring计时器任务 Spring整合JavaMail(邮件发送)(ssh)
  4. 【struts2+spring+hibernate】ssh框架整合开发
  5. python开发的模型部署_使用Python部署机器学习模型的10个实践经验
  6. 用java爬取杭电oj已ac代码
  7. 派生类的构造【C++继承】
  8. C语言 跨函数使用内存.
  9. 转:inux shell脚本的字符串截取
  10. 权限管理系统中 管理员能看到所有用户的密码么_计算机毕设项目002之学生成绩管理系统...