大佬教程收集整理的这篇文章主要介绍了sqlite3_column,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这个过程从执行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全部内容,希望文章能够帮你解决sqlite3_column所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。