资源简介
里面对于Sqlite3数据库2进制数据进行了详细的解析和对于大部分常用Sqlite3的接口函数做了一定的总结。对于2进制数据eg图片的操作有实例源代码提供。
代码片段和文件信息
#if 0
Sumary By Leonard
Time : 2017.8.25
针对于sqlite数据库需要对其2进制数据进行操作的理解
其中主要是利用了sqlite3_stmt这个辅助结构体来进行sql
语句的转化。
下面是对其blob数据的插和查询操作。查询操作呢,主要是
利用了pTemplate = sqlite3_column_blob( stat 1 );
int length = sqlite3_column_bytes( stat 1 );
这两个接口操作。其中pTemplate是查询到的数据保存的一个
一维数组。
result = sqlite3_reset(stat);这个接口函数是重新
将sqlite3_prepare的stat辅助工具再次解析,然后可以利用
sqlite3_bind_blob()函数再次进行转换后可以sqlite3_step
函数进行sql语句操作。
sqlite3_column_text(stat 1 ) 取text类型的数据。 1表示第1个字段 也就是第1列
sqlite3_column_blob(stat 2 ),取blob类型的数据
sqlite3_column_int(stat 3 ) 取int类型的数据
sqlite3_errcode() 通常用来获取最近调用的API接口返回的错误代码.
sqlite3_errmsg() 则用来得到这些错误代码所对应的文字说明. 这些
错误信息将以 UTF-8 的编码返回并且在下一次调用任何SQLite API函
数的时候被清除. sqlite3_errmsg16() 和 sqlite3_errmsg() 大体上
相同除了返回的错误信息将以 UTF-16 本机字节顺序编码.
如果要创建新数据库 sqlite3_open16() 将内部文本转换为UTF-16编码
反之sqlite3_open() 将文本转换为UTF-8编码.
sqlite3_prepare() 处理的SQL语句应该是UTF-8编码的.
而 sqlite3_prepare16() 则要求是UTF-16编码的. 输入的参数中只有第一个
SQL语句会被编译. 第四个参数则用来指向输入参数中下一个需要编译的SQL语
句存放的SQLite statement对象的指针 任何时候如果调用 sqlite3_finalize()
将销毁一个准备好的SQL声明. 在数据库关闭之前,所有准备好的声明都必须被
释放销毁. sqlite3_reset() 函数用来重置一个SQL声明的状态,使得它可以被再次执行.
int sqlite3_bind_blob(sqlite3_stmt* int const void* int n void(*)(void*));
int sqlite3_bind_double(sqlite3_stmt* int double);
int sqlite3_bind_int(sqlite3_stmt* int int);
int sqlite3_bind_int64(sqlite3_stmt* int long long int);
int sqlite3_bind_null(sqlite3_stmt* int);
int sqlite3_bind_text(sqlite3_stmt* int const char* int n void(*)(void*));
int sqlite3_bind_text16(sqlite3_stmt* int const void* int n void(*)(void*));
int sqlite3_bind_value(sqlite3_stmt* int const sqlite3_value*);
以上是 sqlite3_bind 所包含的全部接口,它们是用来给SQL声明中的通配符赋值的.
没有绑定的通配符则被认为是空值. 绑定上的值不会被sqlite3_reset()函数重置.
但是在调用了sqlite3_reset()之后所有的通配符都可以被重新赋值. 在SQL声明准备好之后(其中绑定的步骤是可选的)
需要调用以下的方法来执行:
int sqlite3_step(sqlite3_stmt*);
如果SQL返回了一个单行结果集,sqlite3_step() 函数将返回 SQLITE_ROW 如果SQL语句执行成功或者正常将返回 SQLITE_DONE
否则将返回错误代码. 如果不能打开数据库文件则会返回 SQLITE_BUSY .
如果函数的返回值是 SQLITE_ROW 那么下边的这些方法可以用来获得记录集行中的数据:
const void *sqlite3_column_blob(sqlite3_stmt* int iCol);
int sqlite3_column_bytes(sqlite3_stmt* int iCol);
int sqlite3_column_bytes16(sqlite3_stmt* int iCol);
int sqlite3_column_count(sqlite3_stmt*);
const char *sqlite3_column_decltype(sqlite3_stmt * int iCol);
const void *sqlite3_column_decltype16(sqlite3_stmt * int iCol);
double sqlite3_column_double(sqlite3_stmt* int iCol);
int sqlite3_column_int(sqlite3_stmt* int iCol);
long long int sqlite3_column_int64(sqlite3_stmt* int iCol);
const char *sqlite3_column_name(sqlite3_stmt* int iCol);
const void *sqlite3_column_name16(sqlite3_stmt* int iCol);
const unsigned char *sqlite3_column_text(sqlite3_stmt* int iCol);
const void *sqlite3_column_text16(sqlite3_stmt* int
相关资源
- delphi调用wxsqlite3
- sqlite3 64位动态库包含 .lib文件
- StudentInformationManagementSystem.zip
- sqlite3Linux版本
- 支持加密的sqlite 最新版本sqlite3.7.7.
- sqlite3 x84 x64 开发包
- 最新sqlite3 x64位的lib
- linux电子词典项目(sqlite3数据库)
- sqlite3嵌入式数据库加密
- sqlite-tools-win32-x86-3240000.zip
- GDAL_BUILD(release).rar
- SQLite3 for windows
- 1_qt+sqlite3程序
- sqlite3.h sqlite3头文件
- sqlite3.exe247412
- sqlite3.h头文件
- iOS sqlite3的使用増删改查
- SQLite3图形界面数据库查看工具
- wxSqlite3 for Delphi
- linux环境下QT语言写的学生成绩管理系
- sqlite3.dll
- CppSQLite基于SQLite 3.4.0
- SQLite3基础教程(高清PDF中文版)
- Ubuntu下安装sqlite3数据库
- boa与数据库数据交互的
- linux多人聊天室
- Nodejs操作Sqlite3数据库封装
- QT+sqlite3仓库管理系统
- sqlite simple delphi修正版支持中文路径
- iOS数据库SQLite3基本操作并将内容显示
评论
共有 条评论