1、使用SQLite下载的库
首先把SQLite源码下载下来,主要使用sqlite3.h文件。记录sqlite3.def文件(前面解压出来的文件)所在文件夹,如C:\SQLite
通过VS2012编译,生成.lib文件。打开vs2012->工具->Visual Studio命令提示,打开命令行输入窗口:
进入到sqlite3.def文件所在的文件夹,然后执行lib /def:sqlite3.def /machine:ix86命令生成.lib文件:
可以看到创建了sqlite3.lib库,如下图文件夹中所示:
将sqlite3.lib和sqlite3.h文件放到文件夹sqlite3中,然后将sqlite3文件夹拷贝到工程所在文件目录下,然后在工程链接库中添加sqlite3.lib,并添加sqlite3.lib所在目录,如下图所示:
当配置完成之后,在程序中包含sqlite3.h头文件即可:
接下来就可以进行编程了。
2、创建数据库
创建数据库采用的API是sqlite3_open函数,函数原型如下所示:
int sqlite3_open(const char* filename, sqlite3 **ppDb);
filename: 表示创建的数据库的目录及数据库名称。如果filename所表示的数据库文件已存在,则会打开该数据库文件;如果不存在,则会创建一个新的数据库文件。如果filename为NULL或者”:memory”,则会创建一个内存数据库,只会在session的有效时间内持续。
ppDb: 指向打开的数据库的连接,接下来的操作主要是使用该连接。
如下所示的代码表示在目录中创建一个新的数据库:
可以看到在该目录中,增加了一个新的数据库文件:
3、创建数据表
当在程序中创建数据表时,使用的还是sql命令,和使用Command Line Shell时的命令是一样的,只不过是需要调用API将命令发送并执行;需要使用的API是sqlite3_exec函数,该函数的原型如下所示:
其中sqlite_callback函数必须是满足以下原型的函数:
该函数可以返回执行sql命令时的返回值,其中azColName存储的是数据表中列的名称,argv存储的是数据行中对应列的值,argc表示返回了多少个数据行;sql_Callback_func的具体定义可以参考如下所示:
具体示例如下所示:
上面的代码表示,创建了一个名为test的数据表,包含了5列,分别为ID\NAME\AGE\ADDRESS\HEIGHT;当对数据库的操作完成时候,需要关闭与数据库的连接。
通过Command Line Shell操作,可以发现在数据库new_db.db中已经有了一个名为test的数据表:
4、删除数据表
删除数据表还是使用sqlite3_execAPI,只不过发送的命令是DROP命令,具体实例如下所示:
可以看出,数据库中已经没有了text1数据表。
需要注意的是,当执行的命令没有返回数据的时候,是不会调用sql_Callback_func回调函数的。
5、INSERT – 添加新的数据行
具体实例如下所示:
该代码实例是向数据表中插入了6条数据,可以查看记录如下所示:
6、UPDATE – 修改数据表中已有的记录
具体实例如下所示:
该代码是将NAME为GK的ADDRESS改为gk_new_address,具体执行结果如下:
7、DELETE – 删除数据表中已有的记录
具体实例如下:
操作结果如下所示:
8、SELECT – 从数据表中获取数据记录
具体实例如下所示:
当有数据返回时,就会调用sql_Callback_func函数,此时就会打印出返回的数据: