纯C/C++代码读写SQLite数据库

2025-04-03 20:26:08

SQLite小巧易用,功能强大,非常适合开发文件型数据库应用的程序。而且SQLite官网也给了详细的开发文档,相关的开发教程也非常全面,应用编程接口使用也很简单。前期我毽爸程风介绍了在Qt中读写数据库的经验,今天我们来看看如何在纯C/C++环境中读写SQLite数据库。

纯C/C++代码读写SQLite数据库

工具/原料

SQLite3 windows版

SQLite3源代码

Devcpp集成开发环境

一、编译静态SQLite3数据库文件

1、实际上使用动态链接库来开发比较好,而且我们下载的sqlite3旯皱镢涛程序自身已经带有sqlite3.dll以及sqlite3.def文件,是可以使用VS的相关工具来生成lib文件以给我们编程弋讥孜求使用。奈何我不用VS,也不想为了这个再去安装一个,所以决定自己编译一个静态库来用,其实动态库也是一样。下面是sqlite3程序及源代码:

纯C/C++代码读写SQLite数据库

2、好的,下面我们来开始编译sqlite3静态库。打开devc++,新建一个静态链接库项目sqlite_lib。如下图:如果你不知道devc++如何使用,请参考我的另一篇经验。

纯C/C++代码读写SQLite数据库

3、我们把项目保存在一个我们事先建好的文件夹中,文件夹的名字也叫sqlite_lib。

纯C/C++代码读写SQLite数据库

4、我们将源代码中的sqlit3.h以及sqlite3.c拷贝至sqlite_lib文件夹。然后,在devcpp中的项目上右键,添加。

纯C/C++代码读写SQLite数据库

5、然后将sqlite3.h及sqlite3.c添加到项目。

纯C/C++代码读写SQLite数据库

6、之后,我们点击编译按钮或者运行菜单中的编译菜单或者直接按F9,开始编译。我们当前是在debug模式下编译的。

纯C/C++代码读写SQLite数据库

7、可以看到很顺利,连一个警告都没有,顺利编译完成。并生成了sqlite_lib.a静态库。

纯C/C++代码读写SQLite数据库

二、建立静态库的测试项目

1、其实编写相应的代码并不是很复杂,我们来看看sq盟敢势袂lite官网是怎么说的。我们可以看到,这个代码只调用了三个函数就完成了从创建、到读写最后关闭数据库的过程。采用的是直接调用sqlite提供的函数。

纯C/C++代码读写SQLite数据库

2、我们这里就直接将官网的代码拿来用用,看能不能正确的运行。我们在devcpp中新建一个控制台项目,见下图。项目保存在另外一个目录中,也叫sqlite_lib_demo。

纯C/C++代码读写SQLite数据库

3、我们将官网的示例代码粘贴到main.c文件中。同时,我们将sqlite3.h以及我们刚才生成的sqlite_lib.a一块拷贝至sqlite_lib_demo文件夹。

纯C/C++代码读写SQLite数据库

4、点击项目菜单,项目属性。打开项目选项窗口,切换到参数标签。

纯C/C++代码读写SQLite数据库

5、点击 加入库或者对象,选择sqlite_lib.a,然后依次点击 打开 确定按钮。

纯C/C++代码读写SQLite数据库

6、最后我们来编译项目。弹出了一个错误。提示 没有sqlite3.h这个文件或目录。这个问题简单,我们只需要将#include <sqlite3.h>改为#include "sqlite3.h"即可

纯C/C++代码读写SQLite数据库

7、重新进行编译。这次顺利的编译完成,运行一下看看。打印输出了错误提示,原来不能够直接运行。

纯C/C++代码读写SQLite数据库

三、测试程序

1、运行命令提示符,切换到我们的程序目录。然后,我们创建了一个名为mydata.db的数据库文件,创建了一个名叫student的表格,并插入了三条记录。程序看起来运行的很正常。

纯C/C++代码读写SQLite数据库

2、我们来验证下看看刚才的操作是不是真的没问题。可以看到程序工作的很好。

纯C/C++代码读写SQLite数据库

3、我们聪艄料姹再回头看看代码。先定义了一个sqlite3对象的指针:sqlite3 *db;然后调用sqlite3_open函数打开数据库,赋值给db。并返回是否打开成功。然后通过sqlite3_e旌忭檀挢xec函数来执行sql语句。如果中间出现问题,或者所有操作执行完后没有问题的话,就调用sqlite3_close来关闭连接。这里的sqlite3_exec函数的参数中有个函数指针,我们来看看官网的解释。

纯C/C++代码读写SQLite数据库

4、官网说如果sqlite3_exec的第三个参数为非NULL的话,它就会被调用用来输出SQL语句执行后的每一行结果。我们来看看是不是这样的。果然是这样。

纯C/C++代码读写SQLite数据库

5、最后,我们来生成一个release模式的静态库和可执行文件看看。一个700多K,一个900多K,确实不小。

纯C/C++代码读写SQLite数据库
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢