vs使用mysql操作步骤_技术分享 - 使用VS2013创建并操作SQLite数据库

本文介绍了如何在VS2013中编译SQLite数据库库文件,包括从SQLite官网下载源码和二进制文件,使用lib.exe编译.lib文件,然后在VS项目中引入头文件和库文件。通过示例代码展示了如何使用SQLite的sqlite3_open、sqlite3_exec等函数创建表、插入数据和查询数据,最后强调了运行程序需要将SQLite3.dll复制到exe同一目录下。
摘要由CSDN通过智能技术生成

背景

很早就听说过SQLite数据库了,但是自己一直都没有去接触它。一天,群友在Q群里提问有没有人使用VS写过关于SQLite数据库的例子。霎时间,我知道自己是时候要与SQLite邂逅了。

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎,而且源代码不受版权限制。

本文就是要实现这样的一个小程序,使用VS2013加载SQLite数据库的库文件,并实现使用SQL语句新建表、对表插入数据并查询数据的功能。现在,我就把实现过程整理成文档,分享给大家。

使用VS2013编译SQLite数据库的库文件

在使用 SQLite 数据库之前,我们需要到 SQLite官网 上下载SQLite数据库的源码文件以及二进制文件。本文演示使用的下载文件是“sqlite-amalgamation-3190300.zi p” 和 “sqlite-dll-win32-x86-3190300.zip”。

编译库文件

首先,我们先解压二进制压缩文件 “sqlite-dll-win32-x86-3190300.zip”,解压后目录下有两个文件,分别是 “sqlite3.dll” 和 “sqlite3.def”,现在,我们需要使用VS2013 来帮助编译得到 .lib 库文件。编译过程就是在命令行CMD下输入:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe"/MACHINE:IX86/DEF:C:\Users\DemonGan\Desktop\sqlite-dll-win32-x86-3190300\SQLite3.def/OUT:C:\Users\DemonGan\Desktop\sqlite-dll-win32-x86-3190300\SQLite3.lib

其中,”C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe”就是你的VS2013自带的 lib.exe 程序路径;C:\Users\DemonGan\Desktop\sqlite-dll-win32-x86-3190300\SQLite3.def就是解压文件目录中SQLite3.def的路径;C:\Users\DemonGan\Desktop\sqlite-dll-win32-x86-3190300\SQLite3.lib就是保存生成的库文件SQLite.lib的输出路径。

这样,我们就在目录下生成了“SQLite3.lib”库文件。

16283490a45821004b8dfa56d42e8c0d.png

向VS2013工程中导入SQLite库文件配置

这时,我们继续解压“sqlite-amalgamation-3190300.zip”,将解压目录下的 “sqlite3.h” 头文件和 “SQLite3.lib” 库文件一起拷贝到工程目录下。然后,在工程中添加头文件和库文件:

#include"sqlite3.h"

#pragmacomment(lib,"sqlite3.lib")

这样,就可以在项目工程中,使用SQLite数据库了。

实现过程

首先,我们使用 sqlite3_open 函数根据数据库文件名称创建 SQLite 数据库。sqlite3_open 函数的第 1 个参数表示要创建的数据库名称,第 2 个参数获取数据库创建成功后的数据库句柄。

// 打开数据库,创建连接

intiRet=sqlite3_open(szFileName,&conn);

if(SQLITE_OK!=iRet)

{

ShowError("sqlite3_open");

return1;

}

然后,我们就可以直接调用 sqlite3_exec 函数执行SQL语句,来对数据库进行操作。其中, sqlite3_exec 函数的第 1 个参数表示数据库的句柄;第 2 个参数表示SQL语句;第 3 个参数表示回调函数,每成功执行一次SQL语句就执行一次回调函数;第 4 个参数表示回调函数返回的数据信息。

现在,我们执行SQL语句 “CREATE TABLE demongan(ID int, Name varchar (20), Age int)”来创建一个名为demongan的表:

// 执行SQL语句,创建表demongan

::wsprintf(szSQL,"CREATE TABLE demongan(ID int, Name varchar(20), Age int)");

iRet=sqlite3_exec(conn,szSQL,NULL,NULL,&szErr);

if(SQLITE_OK!=iRet)

{

ShowError("sqlite3_exec",szErr);

return2;

}

然后,继续调用 sqlite3_exec 函数执行SQL语句,将数据插入数据库中:

// 执行SQL语句,插入10条记录

for(i=0;i<10;i++)

{

::wsprintf(szSQL,

"INSERT INTO demongan(ID, Name, Age) VALUES(%d, \'%s%d\', %d)",

i,"Name",i,i+1);

iRet=sqlite3_exec(conn,szSQL,NULL,NULL,&szErr);

if(SQLITE_OK!=iRet)

{

ShowError("sqlite3_exec",szErr);

return3;

}

}

接着,继续调用 sqlite3_exec 函数执行SQL语句,查询数据库,注意此处需要传入第 3 个参数,也就是回调函数,以此来显示查询结果:

// 执行SQL语句,查询记录

::wsprintf(szSQL,"SELECT * FROM demongan");

iRet=sqlite3_exec(conn,szSQL,sqlite3_exec_callback,NULL,&szErr);

if(SQLITE_OK!=iRet)

{

ShowError("sqlite3_exec");

return4;

}

那么,回调函数 sqlite3_exec_callback 的函数名称是任意的,但是参数是固定的。一共有 4 个参数,第 1 个参数是由 sqlite3_exec 函数的第 4 个参数传递而来;第 2 个参数是表的列数;第 3 个参数表示查询到的值的指针数组;第 4 个参数表示列名即字段名指针数组。

本文回调函数 sqlite3_exec_callback 的代码如下,

intsqlite3_exec_callback(void*data,intcolNum,char**colValue,char**colName)

{

inti=0;

for(i=0;i

{

printf("%s[%s]\t",colName[i],colValue[i]);

}

printf("\n");

return0;

}

程序测试

将解压文件中的 “SQLite3.dll” 拷贝到工程编译链接生成的 exe 程序同一目录下,运行 exe 程序,成功显示数据库查询结果:

6cab186b3c3b670f1310014fe18d4482.png

总结

使用SQLite数据库确实很方便,不需要安装额外的数据库环境,就可以通过SQL语句去操作数据库。这个程序的实现过程不是很繁杂,只要跟着上述介绍的步骤,仔细编码就可实现。

同时,也应该注意的是,需要把解压文件中的 “SQLite3.dll” 拷贝到工程编译链接生成的 exe 程序同一目录下,这样程序才能正常运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值