C++ :sqlite3使用:


更详细的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版本号

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间之里

好东西就应该拿出来大家共享

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值