C++ :sqlite3使用:
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使用:相关推荐
- 如何在sqlite3连接中创建并调用自定义函数
#!/user/bin/env python # @Time :2018/6/8 14:44 # @Author :PGIDYSQ #@File :CreateFunTest.py '''如何在sql ...
- Sqlite3支持的数据类型 日期函数 Sqlite3 函数
Sqlite3支持的数据类型 NULL INTEGER REAL TEXT BLOB 但实际上,sqlite3也接受如下的数据类型: smallint 16 位元的整数. interger 32 位元 ...
- linux qt 连接sqlite3,RedHat 9 Linux下在QT3.1中连接SQLite3全过程详细记录
作者:zieckey([email]zieckey@yahoo.com.cn[/email]) All Rights Reserved 下文介绍的内容都是基于 Linux RedHat 9.0 平台的 ...
- 在CentOS 7.5上升级SQLite3过程实录
业务起因 我在CentOS 7.5上安装python3.7+Django 3.1.7并创建项目时,发现启动demo例子出错了,出错信息如下: django.core.exceptions.Improp ...
- SQLite3简单C++包装类源码示例
一个比较好的SQLite3 C++ wrapper包装类的通常思路是这样的: 数据库连接类,包含连接池,和sqlite3*,负责与数据库文件的连接问题: 一些create table,insert,u ...
- 【数据库】sqlite3数据库备份、导出方法汇总
[数据库]sqlite3常用命令及SQL语句 目录 1.直接拷贝数据库 2.使用.backup .clone 1)交互式 2)脚本 3.导出到csv文件中(其它格式类似) 1)交互式 2)脚本 3)导 ...
- 【数据库】sqlite3常用命令及SQL语句
[数据库]sqlite3数据库备份.导出方法汇总 一.准备工作 0.安装SQLite3 1)ubuntu命令安装(不是最新版本) sudo apt install sqlite3 2)源码安装(可以安 ...
- 【iOS】sqlite3的使用(増删改查)
目录: 一.sqlite3常用函数 二.将sqlite3集成到项目,实现増删改查 三.封装DBManager 四.Demo 一.sqlite3常用函数及解释 (1)sqlite3_open: 用来创建 ...
- sqlite3数据的使用(xcode 7,ios9)
由于考虑将来还要开发Android版本app,为了移植方便,所以使用了sqlite3来做数据持久化,到时候把sql语句拷过去还能用. 1. 首先用xcode载入sqlite3类库 选择工程的TARGE ...
- 怎么让wordpress用sqlite3 搭建轻量级博客系统
wordpress 默认是用mysql作为数据库支持,这个对个人站长来说还是有点麻烦了些.特别是如果以后网站备份迁移就有点事多了. 之前用django开发自己的博客感觉其实用sqlite3作为数据库插 ...
最新文章
- 了解一下爬虫技术方方面面
- Kudu:为大数据快速分析量身定制的 Hadoop 存储系统
- 大棚骨架搭建好 科学施肥增收增产
- dotnet Blazor 用 C# 控制界面行为
- vim 函数列表插件
- 得到品控手册_得到品控手册 一本令人惊喜的说明书
- python创建access表_Access创建表
- 我如何使用Python查找有趣的人来关注Medium
- numpy 辨异 (五)—— numpy.ravel() vs numpy.flatten()
- [转载] python学习-基础教程、深度学习
- 《How to Write and publish a scientific paper》 Chapter 2
- python PIL生成字母验证图片
- java判断文件是否存在_Java判断文件、文件夹是否存在
- tomcat7安装以及环境变量配置
- 威纶触摸屏与台达DVP系列PLC通信的参数设置和连接电缆
- 大漠插件ocr多选字库_大漠ocr识别字库的生成,和使用方法
- 什么是宝塔面板,跟服务器之间有什么特别联系?
- 好看的原创弹窗公告代码分享
- Java千百问_01基本概念(015)_阻塞、非阻塞有什么区别
- 2023年兔年好看的头像
热门文章
- Java项目中如何更优雅的处理空值?
- 记一次Spring boot 和Vue前后端分离的入门培训
- 【struts2+hibernate+spring项目实战】Spring计时器任务 Spring整合JavaMail(邮件发送)(ssh)
- 【struts2+spring+hibernate】ssh框架整合开发
- python开发的模型部署_使用Python部署机器学习模型的10个实践经验
- 用java爬取杭电oj已ac代码
- 派生类的构造【C++继承】
- C语言 跨函数使用内存.
- 转:inux shell脚本的字符串截取
- 权限管理系统中 管理员能看到所有用户的密码么_计算机毕设项目002之学生成绩管理系统...