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_text() ,然后 sqlite3_column_bytes()
  • 先sqlite3_column_blob(),然后sqlite3_column_bytes()
  • 先sqlite3_column_text16(),然后sqlite3_column_bytes16()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux中将hdfs数据导入hbase,将数据文件导入到HBase中

假设有一个TSV格式的数据文件test.dat(TSV是指数据文件中的每个字段是以制表符隔开的)首先,将test.dat上传到hdfs上,具体的命令如下:hadoop fs -copyFromLocal test.dat的路径名 /tmp/test.dat(/tmp是hdfs上的一个目录)执行以下命令就可以查…

ios13看怎么airpods电量_iPhoneXR查看airpods蓝牙耳机电量的三种方法

AirPods是苹果公司研发的一款蓝牙耳机,与方法一、当 AirPods 与 iPhoneXR 已经自动配对连接,这时想看耳机和盒子电量,只要在 iPhoneXR 屏幕点亮或解锁的情况下,在手机旁边打开 AirPods 收纳盒的盖子,手机便会自动弹出耳…

sqlite3_finalize sqlite3_close

sqlite3_finalize int sqlite3_finalize(sqlite3_stmt *pStmt); 这个过程销毁前面被sqlite3_prepare创建的准备语句,每个准备语句都必须使用这个函数去销毁以防止内存泄露。 在空指针上调用这个函数没有什么影响,同时可以准备语句的生命周期的任一时刻…

人这辈子没法做太多的事情

人这辈子没法做太多的事情,所以每一件都要做得精彩绝伦。转载于:https://www.cnblogs.com/xiandedanteng/p/3291585.html

magicbook linux系统换w7,荣耀magicbook怎么安装win7 荣耀magicbook安装win7方法

荣耀magicbook 2019笔记本是一款2019年上市的时尚轻薄笔记本电脑,这款电脑采用了amd ryzen 5系列处理器以及性能级独立显卡,能够满足用户们日常娱乐使用需求,那么荣耀magicbook 2019笔记本怎么使用u启动u盘启动盘安装win7系统呢?今天为大家分…

php 区块链算法_PoW/BFT等5种主流区块链共识算法的开源代码实现

共识算法是实现自主产权区块链的必不可少的关键环节,本文列出社区中相对成熟的区块链共识算法开源实现,包括BFT共识、Raft共识、Paxos共识、PoW共识等,可供希望开发自主产权区块链的团队参考学习。相关推荐:区块链开发系列教程1、…

makefile 的export问题

from http://againinput4.blog.163.com/blog/static/172799491201132693532418/ 1.在(parent,上层的)makefile中export出来变量,子makefile(sub make)中,是可以访问的。 2. 而同一级别的makefil…

单片机 串口 波特率 c语言 9600 11.0592mhz t1,PLC与单片机串口通信的实现

党强摘要:本文主要进行探讨单片机与可编程逻辑控制器plc之间的串行通信以及各个系统在通信技术中的应用,本文主要以at89c51单片机和fpi系列的单片机为例进行阐述单片机与plc的串行通信。关键词:plc 单片机 串行通信中图分类号:TP2…

PHP中的正则表达式函数preg_

preg_match(); //用于正则表达式的匹配,且只匹配一次 preg_match_all();//用于正则表达式的匹配,会对所有符合规则的都进行匹配 preg_replace(); //正则表达式替换函数 preg_splite(); //正则分割函数 preg_match ( mode, string subject , ar…

vue 离开页面时间_vue页面离开后执行函数的实例

vue页面离开后执行函数的实例如下所示:destroyed: function () {console.log("我已经离开了!");this.doSomething();},说明:destroyed是与methods、mounted同层级的以上这篇vue页面离开后执行函数的实例就是小编分享给大家的全部内…

Linux批量删除文件

find [目录名] -name [文件名] -exec rm -rf {} \; 例如:find ./ -name *.raw -exec rm -rf {} \; 其中, -exec 表示后面执行命令 {} 表示查询到的文件名 -rf 为删除命令rm的参数,r 表示递归删除, f表示不需要确认,两个…

c语言选择结构程序设计报告,C语言学习与总结---第四章:选择结构程序设计

选择结构程序设计4.1 if语句4.2 关系运算符和关系表达式4.2.1 关系运算符4.2.2 关系表达式4.3 逻辑运算符和逻辑表达式4.3.1 逻辑运算符4.3.2 逻辑表达式4.4 条件运算符和条件表达式4.5 选择结构的嵌套4.6 switch语句4.7 程序应用4.1 if语句If语句有三种基本形式(1)if (判断条件…

jQuery 请指出'$'和'$.fn'的区别?或者说出'$.fn'的用途。

http://hi.baidu.com/chy0806css/item/acc52425099c30ff50fd87eb Jquery为开发插件提供了两个方法,分别是: $.extend(obj);$.fn.extend(obj); 1.那么这两个分别是什么意思? $.extend(obj);是为了扩展jquery本身,为类添加新的方法 …

gentoo 安装时的网络配置

在变换根目录(chroot)前,需要拷贝dns文件 cp -L /etc/resolv.conf/mnt/gentoo/etc/resolv.conf 在变换根目录(chroot)后 1. 修改主机名称 nano -w /etc/conf.d/hostname 2. 修改工作组名称 nano -w /etc/conf.d/domainname rc-update add domainname default 3…

[每日一题] 11gOCP 1z0-052 :2013-09-1 RMAN-- repair failure........................................A20...

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10859315 正确答案:D 一、模拟上题的错误: 1、删除4号文件 [oraclemydb ~]$ cd /u01/app/oracle/oradata/ocm/ [oraclemydb ocm]$ rm -rf users01.dbf2、…

c语言学习自我评价,学习自我评价4篇

学习自我评价4篇发布时间:2019-04-08在这次研究性学习中,我们小组在老师的指导下,通过全体成员的协作分工、研究探讨,集全体之智慧,个人之所学,充分将课本中的理论知识与生活实践相结合,用理论指…

c语言整型数组操作,c语言的数组操作|时刻需

不多说了直接上代码吧1.整型的可变长度的数组#includemain(){/* 测试可变长度的数组(整型的) start */int m;int *a,*b,*a_same,*b_same;printf("输入数组a的个数:\n");scanf("%d",&m);a (int*)malloc(m*sizeof(int));//动态分配数组print…

用Crossdev安装MIPS交叉编译工具链

例如执行这样的安装命令: crossdev -S --ex-gdb --without-headers -t mipsel-unknown-linux-gnu 首先,修改/etc/make.conf文件,在文件最后加上PORTDIR_OVERLAY/usr/portage/(不然会报错没有设置PORTDIR_OVERLAY) 然后…

kafka集群 kubernetes_为什么 Kubernetes 如此受欢迎?

点击上方蓝色“火丁笔记”关注我们,设个星标,每天学习全栈知识在撰写本文时,Kubernetes 已有 6 年历史[1]了,在过去的两年中,它的流行度不断提高,一直是最受欢迎的平台之一[2]。今年,它成为最受…