CREO Toolkit二次开发-集成Sqlite
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制[1]。对一些小型数据库应用来说,显然使用Sqlite比使用access更具优势。做了一个测试将Sqlite集成到Toolkit程序中。
1.获取源码
首先在Sqlite的官网https://www.sqlite.org/download.html下载最新版源码,我这里下载的是sqlite-amalgamation-3250200.zip。
2.配置工程
新建一个MFC DLL工程,按照正常的Creo Toolkit程序配置工程。另需在设置中c++————预编译头————预编译头设置为”不使用预编译头”。
将第一步下载的shell.c、sqlite3.c、sqlite3.h、sqlite3ext.h四个文件包含到项目中。
上述两个步骤与“CREO Toolkit二次开发集成Lua”文中操作类似,在此不再赘述。
3. 关键源码
- 首先包含头文件。在vs中的stdafx.h包含头文件,代码如下:
1 |
Sqlite官方文件中提供了sqlite3_open和sqlite3_exec函数实现打开数据库和执行Sql语句操作,具体函数说明可在官网查看。打开数据库并执行Sql语句示例代码如下:
1 | sqlite3 *db; |
上述代码中callback为执行Sql语句后执行的函数,做个测试显示检索到的所有结果,示例代码如下:
1 | int callback(void *, int nCount, char **pValue, char **pName) |
Sqlite默认采用UTF8编码,而我们的工程采用“使用多字节字符集”,故如果数据库中读写中文需要有个转码操作。MFC为我们提供了MultiByteToWideChar等函数进行转码,测试了一个UTF8转多字节的函数:
1 | int Utf82Unicode(const char *utf, wchar_t *unicode, int nBuffSize) |
完整代码可在Github.com下载。
参考文献
[1] 菜鸟教程. SQLite 教程. 2018-10-25[引用日期2018-10-25],http://www.runoob.com/sqlite/sqlite-tutorial.html.