- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文档来源网络 侵权删除
前序
Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不
够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以
备忘记。
这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工
作就是为 unix 平台写代码。下面我所写的东西,虽然没有验证,但是我已尽量不
使用任何 windows 的东西,只使用标准 C 或标准 C++ 。但是,我没有尝试过在别
的系统、别的编译器下编译,因此下面的叙述如果不正确,则留待以后修改。
下面我的代码仍然用 VC 编写,因为我觉得 VC 是一个很不错的 IDE ,可以加快代码
编写速度(例如配合 Vassist )。下面我所说的编译环境,是VC2003 。如果读者
觉得自己习惯于 unix 下用 vi 编写代码速度较快,可以不用管我的说明,只需要
符合自己习惯即可,因为我用的是标准 C 或 C++ 。不会给任何人带来不便。
一、版本
从 .sqlite.org ://.sqlite.org/ 网站可下载到最新的 sqlite 代
码和编译版本。我写此文章时,最新代码是 3.3.17 版本。
很久没有去下载 sqlite 新代码,因此也不知道 sqlite 变化这么大。以前很多文
件,现在全部合并成一个 sqlite3.c 文件。如果单独用此文件,是挺好的,省去
拷贝一堆文件还担心有没有遗漏。但是也带来一个问题:此文件太大,快接近 7 万
行代码,VC 开它整个机器都慢下来了。如果不需要改它代码,也就不需要打开
sqlite3.c 文件,机器不会慢。但是,下面我要写通过修改 sqlite 代码完成加密
功能,那时候就比较痛苦了。如果个人水平较高,建议用些简单的编辑器来编辑,
例如 UltraEdit 或 Notepad 。速度会快很多。
二、基本编译
这个不想多说了,在 VC 里新建 dos 控制台空白工程,把 sqlite3.c 和
sqlite3.h 添加到工程,再新建一个 main.cpp 文件。在里面写:
extern C
{
#include ./sqlite3.h
文档来源网络 侵权删除
};
int main( int , char** )
{
return 0;
}
为什么要 extern “C ” ?如果问这个问题,我不想说太多,这是C++ 的基础。要在
C++ 里使用一段 C 的代码,必须要用 extern “C ” 括起来。C++跟 C 虽然语法上有
重叠,但是它们是两个不同的东西,内存里的布局是完全不同的,在 C++编译器里
不用 extern “C ”括起C 代码,会导致编译器不知道该如何为 C 代码描述内存布局。
可能在 sqlite3.c 里人家已经把整段代码都 extern “C ” 括起来了,但是你遇到
一个 .c 文件就自觉的再括一次,也没什么不好。
基本工程就这样建立起来了。编译,可以通过。但是有一堆的 warning 。可以不管它。
三、SQLITE 操作入门
sqlite 提供的是一些 C 函数接口,你可以用这些函数操作数据库。通过使用这些接
口,传递一些标准 sql 语句(以 char * 类型)给 sqlite 函数,sqlite 就会为
你操作数据库。
sqlite 跟 MS 的access 一样是文件型数据库,就是说,一个数据库就是一个文件,
此数据库里可以建立很多的表,可以建立索引、触发器等等,但是,它实际上得到
的就是一个文件。备份这个文件就备份了整个数据库。
sqlite 不需要任何数据库引擎,这意味着如果你需要 sqlite 来保存一些用户数
据,甚至都不需要安装数据库
(如果你做个小软件
文档评论(0)