1.0 总览 SQLite3 是SQLite 一个全新的版本,它虽然是在 SQLite 2.8.13 的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和 API. SQLite3 是为了满足以下的需求而开发的: 支持 UTF-16 编码. 用户自定义的文本排序方法. 可以对 BLOBs 字段建立索引. 因此为了支持这些特性我改变了数据库的格式,建立了一个与之前版本不兼容的3.0 版. 至于其他的兼容性的改变,例如全新的 API 等等,都将在理论介绍之后向你说明,这样可以使你最快的一次性摆脱兼容性问题. 3.0 版的和 2.X 版的 API 非常相似,但是有一些重要的改变需要注意. 所有 API 接口函数和数据结构的前缀都由"sqlite_"改为了"sqlite3_". 这是为了避免同时使用 SQLite 2.X 和 SQLite 3.0 这两个版本的时候发生链接冲突. 由于对于 C 语言应该用什么数据类型来存放 UTF-16 编码的字符串并没有一致的规范. 因此 SQLite 使用了普通的 v oid* 类型来指向 UTF-16 编码的字符串. 客户端使用过程中可以把 v oid*映射成适合他们的系统的任何数据类型. 2.0 C /C ++ 接口 SQLite 3.0 一共有 83 个 API 函数,此外还有一些数据结构和预定义 (#defines). ( 完整的 API 介绍请参看另一份文档.) 不过你们可以放心,这些接口使用起来不会像它的数量所暗示的那么复杂. 最简单的程序仍然使用三个函数就可以完成: sqlite3_open(), sqlite3_ex ec(), 和 sqlite3_close(). 要是想更好的控制数据库引擎的执行,可以使用提供的 sqlite3_prepare()函数把 SQL 语句编译成字节码,然后在使用 sqlite3_step()函数来执行编译后的字节码. 以 sqlite3_colu mn_开头的一组 API 函数用来获取查询结果集中的信息. 许多接口函数都是成对出现的,同时有 UTF-8 和 UTF-16 两个版本. 并且提供了一组函数用来执行用户自定义的SQL 函数和文本排序函数. 2.1 如何打开关闭数据库 typedef struct sqlite3 sqlite3; int sqlite3_open(const char*, sqlite3**); int sqlite3_open16(const void*, sqlite3**); int sqlite3_close(sqlite3*); const char *sqlite3_errmsg(sqlite3*); const void *sqlite3_errmsg16(sqlite3*); int sqlite3_errcode(sqlite3*); sqlite3_open() 函数返回一个整数错误代码,而不是像第二版中一样返回一个指向 sqlite3 结构体的指针. sqlite3_open() 和 sqlite3_op...