[计算机软件及应用]sqlite

[计算机软件及应用]sqlite

ID:22877859

大小:250.00 KB

页数:33页

时间:2018-11-01

[计算机软件及应用]sqlite_第1页
[计算机软件及应用]sqlite_第2页
[计算机软件及应用]sqlite_第3页
[计算机软件及应用]sqlite_第4页
[计算机软件及应用]sqlite_第5页
资源描述:

《[计算机软件及应用]sqlite》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1.0总览SQLite3是SQLite一个全新的版本,它虽然是在SQLite2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和API.SQLite3是为了满足以下的需求而开发的:支持UTF-16编码.用户自定义的文本排序方法.可以对BLOBs字段建立索引.因此为了支持这些特性我改变了数据库的格式,建立了一个与之前版本不兼容的3.0版.至于其他的兼容性的改变,例如全新的API等等,都将在理论介绍之后向你说明,这样可以使你最快的一次性摆脱兼容性问题.3.0版的和2.X版的API非常相似,但是有一些重要的改变需要注意.所有API接口函数和数据结构的前缀都由

2、"sqlite_"改为了"sqlite3_".这是为了避免同时使用SQLite2.X和SQLite3.0这两个版本的时候发生链接冲突.由于对于C语言应该用什么数据类型来存放UTF-16编码的字符串并没有一致的规范.因此SQLite使用了普通的void*类型来指向UTF-16编码的字符串.客户端使用过程中可以把void*映射成适合他们的系统的任何数据类型.2.0C/C++接口SQLite3.0一共有83个API函数,此外还有一些数据结构和预定义(#defines).(完整的API介绍请参看另一份文档.)不过你们可以放心,这些接口使用起来不会像它的数量所暗示的那么复杂.最简单的程

3、序仍然使用三个函数就可以完成:sqlite3_open(),sqlite3_exec(),和sqlite3_close().要是想更好的控制数据库引擎的执行,可以使用提供的sqlite3_prepare()函数把SQL语句编译成字节码,然后在使用sqlite3_step()函数来执行编译后的字节码.以sqlite3_column_开头的一组API函数用来获取查询结果集中的信息.许多接口函数都是成对出现的,同时有UTF-8和UTF-16两个版本.并且提供了一组函数用来执行用户自定义的SQL函数和文本排序函数.2.1如何打开关闭数据库typedefstructsqlite3sql

4、ite3;intsqlite3_open(constchar*,sqlite3**);intsqlite3_open16(constvoid*,sqlite3**);intsqlite3_close(sqlite3*);constchar*sqlite3_errmsg(sqlite3*);constvoid*sqlite3_errmsg16(sqlite3*);intsqlite3_errcode(sqlite3*);sqlite3_open()函数返回一个整数错误代码,而不是像第二版中一样返回一个指向sqlite3结构体的指针.sqlite3_open()和sqlite3_

5、open16()的不同之处在于sqlite3_open16()使用UTF-16编码(使用本地主机字节顺序)传递数据库文件名.如果要创建新数据库,sqlite3_open16()将内部文本转换为UTF-16编码,反之sqlite3_open()将文本转换为UTF-8编码.打开或者创建数据库的命令会被缓存,直到这个数据库真正被调用的时候才会被执行.而且允许使用PRAGMA声明来设置如本地文本编码或默认内存页面大小等选项和参数.sqlite3_errcode()通常用来获取最近调用的API接口返回的错误代码.sqlite3_errmsg()则用来得到这些错误代码所对应的文字说明.这

6、些错误信息将以UTF-8的编码返回,并且在下一次调用任何SQLiteAPI函数的时候被清除.sqlite3_errmsg16()和33sqlite3_errmsg()大体上相同,除了返回的错误信息将以UTF-16本机字节顺序编码.SQLite3的错误代码相比SQLite2没有任何的改变,它们分别是:#defineSQLITE_OK0/*Successfulresult*/#defineSQLITE_ERROR1/*SQLerrorormissingdatabase*/#defineSQLITE_INTERNAL2/*AninternallogicerrorinSQLite*/

7、#defineSQLITE_PERM3/*Accesspermissiondenied*/#defineSQLITE_ABORT4/*Callbackroutinerequestedanabort*/#defineSQLITE_BUSY5/*Thedatabasefileislocked*/#defineSQLITE_LOCKED6/*Atableinthedatabaseislocked*/#defineSQLITE_NOMEM7/*Amalloc()failed*/#defineSQLITE_REA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。