sqlite3-c-apis
来源:互联网 发布:js 屏蔽鼠标中键 编辑:程序博客网 时间:2024/06/15 04:15
SQLite3 C APIs
核心对象和接口
数据库引擎的核心任务就是执行SQL语句,为完成该目的,站在开发者的立场上,必须首先理解两个对象
- 数据库连接对象(The database connection object): sqlite3- 预编译的语句对象(The prepared statement object): sqlite3_stmt
**由于sqlite3_exec或sqlite3_get_table接口的方便的封装,预编译的语句对象已经不在是必须要求的。
但是,理解预编译的语句对完整的理解SQLite还是有帮助的**
数据库连接和预编译语句对象由如下接口控制:
- sqlite3_open() - sqlite3_prepare_v2() - sqlite3_step() - sqlite3_column() - sqlite3_finalize()- sqlite_close()
sqlite3_open()
创建数据库连接对象的方法
sqlite3_prepare_v2()
该函数将SQL语句转成预编译的语句对象
sqlite3_step()
执行预编译的语句,每次处理一行,不需要返回值的语句(如INSERT、UPDATE、DELETE)只需要执行该函数执行即可
sqlite3_column()
运行该函数每次返回
sqlite3_step()
执行结果中的一列,该函数在这里只是占位,实际使用中根据不同的数据类型,使用如下相应的函数- sqlite3_column_blob()
- sqlite3_column_bytes()
- sqlite3_column_bytes16()
- sqlite3_column_count()
- sqlite3_column_double()
- sqlite3_column_int()
- sqlite3_column_int64()
- sqlite3_column_text()
- sqlite3_column_text16()
- sqlite3_column_type()
- sqlite3_column_value()
sqlite3_finalize()
该函数销毁由
sqlite3_prepare_v2()
函数创建的预编译 语句对象sqlite_close()
该函数关闭数据库连接(即销毁数据库连接对象)
执行SQL语句,应用程序需要遵守如下几步:
- 通过
sqlite3_prepare()
创建预编译语句 - 调用
sqlite3_step()
一次或多次来运行预编译的语句 - 对于查询操作,在两次
sqlite3_step()
之间调用sqlite3_column()
来提取结果 - 调用
sqlite3_finalize()
来销毁预编译语句
便利的封装
sqlite3_exec()
和sqlite3_get_table()
这两个接口是对以上4步的方便的封装,不同的是sqlite3_exec()
是通过传入的回调函数来处理每一行的结果,而sqlite3_get_table()
没有回调,并且将查询的结果存储在对内存上
绑定参数和重用预编译语句
sqlite3_reset() // 重用预编译语句
sqlite3_bind() // 绑定参数
在SQLite中,参数的使用可以按如下任一格式
? ?NNN :AAA $AAA @AAA
在上面的例子中,NNN是一个整数值,AAA是一个标示符
附: SQLite命令行Shell
SQLite命令行Shell
- sqlite3-c-apis
- C+sqlite3
- Interacting with Objective-C APIs
- APIs
- SQLite3的C编程
- SQLite3 -- C 编程
- Linux C SQLite3 编程
- Linux C SQLite3 编程
- SQLITE3,C语言使用
- SQLite3 -- C 编程
- Linux C SQLite3 编程
- SQLITE3,C语言使用
- SQLite3 C/C++介绍
- SQLITE3,C语言使用
- Linux C SQLite3 编程
- sqlite3 C语言编程
- linux c sqlite3 编程
- linux C sqlite3 mysql
- cocos2dx关卡选择界面设计
- Sqlite
- Java泛型 继承中类型变量的关系
- 转: 计算机的引导过程
- CMD 模块构建,从认识 Grunt 开始
- sqlite3-c-apis
- URL编码与两次encodeURI
- C# 中利用 Conditional 定义条件方法
- Oracle中REGEXP_SUBSTR函数
- NSDictionary全部API的学习。
- MySQL Workbench导出csv格式文件打开后发现数据乱码解决方法
- sqlite命令行工具
- POJ 3006 解题报告
- [uiscreen mainscreen].applicationFrame 和 bounds的区别