sqlite获取 sqlite3_step 结果中的某列的值
来源:互联网 发布:怎样提升淘宝店铺等级 编辑:程序博客网 时间:2024/06/14 03:27
首先执行 sqlite3_prepare_v2
再执行 sqlite3_step
然后
-----------------------------------------------------------------------------------
这个过程从执行sqlite3_step()执行一个准备语句得到的结果集的当前行中返回一个列。每次sqlite3_step得到一个结果集的列停下后,这个过程就可以被多次调用去查询这个行的各列的值。对列操作是有多个函数,均以sqlite3_column为前缀
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);
double sqlite3_column_double(sqlite3_stmt*, int iCol);
int sqlite3_column_int(sqlite3_stmt*, int iCol);
sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);
const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
const void *sqlite3_column_text16(sqlite3_stmt*, int iCol);
int sqlite3_column_type(sqlite3_stmt*, int iCol);
sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol);
说明
第一个参数为从sqlite3_prepare返回来的prepared statement对象的指针,第二参数指定这一行中的想要被返回的列的索引。最左边的一列的索引号是0,行的列数可以使用sqlite3_colum_count()获得。
这些过程会根据情况去转换数值的类型,sqlite内部使用sqlite3_snprintf()去自动进行这个转换,下面是关于转换的细节表:
内部类型
请求的类型
转换
NULL
INTEGER
结果是0
NULL
FLOAT
结果是0.0
NULL
TEXT
结果是NULL
NULL
BLOB
结果是NULL
INTEGER
FLOAT
从整形转换到浮点型
INTEGER
TEXT
整形的ASCII码显示
INTEGER
BLOB
同上
FLOAT
INTEGER
浮点型转换到整形
FLOAT
TEXT
浮点型的ASCII显示
FLOAT
BLOB
同上
TEXT
INTEGER
使用atoi()
TEXT
FLOAT
使用atof()
TEXT
BLOB
没有转换
BLOB
INTEGER
先到TEXT,然后使用atoi
BLOB
FLOAT
先到TEXT,然后使用atof
BLOB
TEXT
如果需要的话添加0终止符
注:BLOB数据类型是指二进制的数据块,比如要在数据库中存放一张图片,这张图片就会以二进制形式存放,在sqlite中对应的数据类型就是BLOB
int sqlite3_column_bytes(sqlite3_stmt*, int iCol)int sqlite3_column_bytes16(sqlite3_stmt*, int iCol)两个函数返回对应列的内容的字节数,这个字节数不包括后面类型转换过程中加上的0终止符。
下面是几个最安全和最简单的使用策略
- 先sqlite3_column_text() ,然后 sqlite3_column_bytes()
- 先sqlite3_column_blob(),然后sqlite3_column_bytes()
- 先sqlite3_column_text16(),然后sqlite3_column_bytes16()
- sqlite获取 sqlite3_step 结果中的某列的值
- sqlite函数sqlite3_step
- sqlite3_step()
- Python sqlite获得查询结果表的列名
- OCCI调用带有返回结果集的存储过程,获取结果集中指定列的值
- OCCI调用带有返回结果集的存储过程,获取结果集中指定列的值
- 如何获取excel 中的 某几个列的值
- shell 获取结果中的第n列,第n行
- SQLite获取查询结果数
- Android中如何处理Sqlite查询结果中的NULL数据列?
- ResultSetMetaData的用法+获取结果集的列名
- python sqlite 获取表名、表的列名
- 获取SQL查询结果集中的行数和列数
- 获取采用模板列的GridView中的隐藏列中的值
- multipath -ll输出结果中的三个状态列的解释
- GridView模板列中的TextBox的ontextchanged事件中获取当前行的某列
- GridView模板列中的TextBox的ontextchanged事件中获取当前行的某列!
- 获取datagridview某列的列名
- tomcat线程池
- css复习 - 基础内容
- java.lang.IllegalArgumentException: Illegal character in query at index 55
- Centos安装protobuf
- C++ STL Set 学习报告
- sqlite获取 sqlite3_step 结果中的某列的值
- LeetCode 98. Validate Binary Search Tree
- 字符串匹配(KMP 算法 含代码)
- 科目二经验之谈 10小时必过秘笈
- C++ STL Vector 学习报告
- 《战拖有术》读书笔记(IV)
- 虚拟机linux配置NFS
- Grunt集成自动重启
- POJ 2488 A Knight's Journey (DFS)