sqlite3 存储和查找二进制数据对象 使用c语言接口
思路:通过让代码执行执行sql语句进行查找,但二进制的显示方法无法确定所以,二进制数据对象查询语句略有不同。
注意:sqlite3的数据库以及开发环境不在本片介绍之中
- sqlite 支持存储blob(二进制大数据)
- 认识两个对象:sqlite3 * 数据库对象。
sqlite3_stmt
* 语句执行对象;
- 使用c语言调用涉及函数接口
int sqlite3_open(const char * filename,sqlite3 **ppDb);
- 功能打开或则创建一个sqlite数据库对象
SQLITE_API int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
//函数功能:打开或则创建一个sqlite数据库对象。数据库对象路径(包含名称),为第一个变量filename,
//第二个变量用于指向打开的数据库,它是一个sqlite3* 指针的地址。
// 返回值; 正确返回 SQLITE_OK宏,错误返回对应的错误码,可以使用 const char* sqlite_errmsg(sqlite3*);获取错误信息
-
SQLITE_API int sqlite3_close(sqlite3*);
- 功能:关闭 sqlit3_open()打开的数据库。 传数据库指针就可以了
-
SQLITE_API int sqlite3_exec(sqlite3 *, const char *sql, int (*callback)(void *, int, char **, char **), void *, char **errmsg);
- 功能:执行sql语句,若sql语句有返回数据,则每一行返回值调用一次处理函数,也就是callback回调函数。
-
SQLITE_API int sqlite3_exec( sqlite3*, /* An open database 数据库指针 */ const char *sql, /* SQL to be evaluated 待执行的sql语句 */ int (*callback)(void*,int,char**,char**), /* Callback function 回调函数指针,放回调函数 */ void *, /* 1st argument to callback 这个参数 是传给回调函数的,是回调函数中的第一个参数 */ char **errmsg /* Error msg written here 错误信息存放地址,需传入一个开辟了空间的指针地址,用于存放错误信息,若为NULL则自动开辟空间存放 */ );
-
下面函数功能,将SQL文本编译为字节代码,它将完成查询或更新数据库的工作。是sqlite3_stmt的构造函数
SQLITE_API int sqlite3_prepare(
sqlite3 *db, /* Database handle 数据库 */
const char *zSql, /* SQL statement, UTF-8 encoded sql语句 */
int nByte, /* Maximum length of zSql in bytes. 语句长度 */
sqlite3_stmt **ppStmt, /* OUT: Statement han