在《SQLite的C语言接口规范(一)》中介绍了如何去连接打开数据库,本篇博客就介绍如何操作数据库,本篇主要给出了如何执行数据库查询语句(Select), 然后遍历结果集。本篇博客就直接使用上一篇博客封装的打开数据库的方法获取到数据库的操作句柄,然后通过这个句柄来操作我们的Sqlite数据库。今天这篇博客中要多Cars.sqlite数据库中的其中一个表进行Select操作。更为细节的东西请参考SQLite官网:http://www.sqlite.org 。
一.预编译SQL语句
要想执行一条查询的SQL语句,需要使用下面任何一个方法先预编译成字节码程序。不难看出以下方法的参数都是一样的,那么就先挨个的介绍一下每个参数的代表什么。
1. 参数“sqlite3 * db”, 就是我们调用sqlite3_open(), sqlite3_open_v2() 或者 sqlite3_open16()成功后获取的操作数据库的句柄。数据库连接必须没有被关闭。
2. zSql是第二个参数, 他的编码格式是UTF-8或UTF-16, 它就是将会被预先编译成字节码的SQL语句。sqlite3_prepare() 和 sqlite3_prepare_v2()接口使用的是UTF-8编码。sqlite3_prepare16() 和 sqlite3_prepare16_v2() 使用的是 UTF-16编码。
3. nByte是第三个参数,说白了,它就是参数zSql字符串的最大长度。如果nByte是负数,那么zSql的长度不限,如果nByte是正数,zSql的长度则不能超过nByte的数值,超出的部分将不会被预编译。如果nByte是0,那么zSql将不会被预编译。如果你之前学过C语言的话,在C语言中是没有所谓的字符串的,是一个指向字符的指针,后面跟了好多字符,以‘