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版本号