sqlite3_column_value()的返回对象是一个 unprotected sqlite3_value 对象.一个不受保护的sqlite3_value object可能只能用于 sqlite3_bind_value()sqlite3_result_value().如果一个unprotected sqlite3_value 对象( sqlite3_column_value()函数的返回值) 被用在其他地方,包括调用如 sqlite3_value_int(), sqlite3_value_text(), 或sqlite3_value_bytes()之类的函数,它的行为是不可预测的。

这些函数尝试把值转化成正确的类型。比如说,对储存在数据库中,值类型为FLOAT的字段,通过但是作为text类型被select出来。sqlite3_snprintf()将自动转换这个数值。下表详细地说明了转化过程。

内部类型(Internal Type) 请求类型               (Requested Type) 转化(Conversion)
NULL INTEGER 值为 0
NULL FLOAT 值为 0.0
NULL TEXT 值为 NULL指针
NULL BLOB 值为 NULL指针
INTEGER FLOAT 从integer 转化为float
INTEGER TEXT  从 integer渲染成ASCII
INTEGER BLOB 跟 INTEGER->TEXT转换过程一样
FLOAT INTEGER 从float 转化为integer
FLOAT TEXT  从 FLOAT渲染成ASCII
FLOAT BLOB 跟FLOAT->TEXT转换过程一样
TEXT INTEGER 使用 atoi()
TEXT FLOAT 使用 atof()
TEXT BLOB 不做改变
BLOB INTEGER 转化为TEXT 然后使用 atoi()
BLOB FLOAT 转化为TEXT 然后使用 atof()
BLOB TEXT 如果需要的话,添加0作为终结符

上表引用C函数库的atoi() 和atof()。实际上,SQLite不会使用这些函数,SQLite有自己跟这些函数等价的转换函数。使用atoi() 和atof()是为了让上表更简短,因为大部分的C程序员对他们都很熟悉。

SQLite中sqlite3_column_value()的返回值的更多相关文章

  1. javascript中的函数返回值(return)

    有些情况,我们希望获取到函数的执行结果,也就是我们需要在函数以外的地方处理执行结果,而不是在函数内部处理.这时我们就需要为函数设一个返回值,也就是return,即函数执行完毕以后返回的结果. 若在函数 ...

  2. MyBatis中Mapper的返回值类型

    insert.update.delete语句的返回值类型 对数据库执行修改操作时,数据库会返回受影响的行数. 在MyBatis(使用版本3.4.6,早期版本不支持)中insert.update.del ...

  3. C++中函数的返回值

    原文 [ 函数的返回值用于初始化在调用函数处创建的临时对象.在求解表达式时,如果需要一个地方储存其运算结果,编译器会创建一个没有命名的对象,这就是 临时对象.temporary object ] -- ...

  4. loadrunner脚本中参数化和返回值输出log到外部文件

    loadrunner脚本中参数化和返回值输出log到外部文件 很多时候,我们在做性能测试之前,需要造数据,但是使用的这些参数化数据和生成的返回数据在后面的测试都会用的,所以我们需要在造数据过程中,将参 ...

  5. ResultMap和ResultType在使用中的区别、MyBatis中Mapper的返回值类型

    在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使 ...

  6. jQuery中ajax如何返回值到上层函数

    jQuery中ajax如何返回值到上层函数 一.总结 一句话总结: ajax的同步操作即可,设置 async: false, 二.jquery的同步操作 var can_submit=true; $. ...

  7. 1.2Web API 2中的Action返回值

    本主题描述 ASP.NET Web API 将返回值转换从一个控制器动作到 HTTP 响应消息. 一个 Web API 控制器动作可以返回下列任一操作 ︰ 1.void 2.IHttpActionRe ...

  8. C++中函数中没写返回值会怎么样?

    先看这一段代码: /* P125 清单7.15 使用迭代求第N个Fibonacci数 */ #include <iostream> int fib(int position); int m ...

  9. ThinkPHP中数据库操作返回值总结

    转自:http://www.baiwar.com/post/thinkphp-database-operations-in-the-return-value.html Thinkphp中的Think\ ...

随机推荐

  1. jQuery动画函数回调

    $("#show").click(function () { //function 是显示完成之后的回调函数 $("p").show(2000,function ...

  2. divinglaravel.com

    https://divinglaravel.com/ 这是一个深入 laravel 的学习网站

  3. boost的accumulator rolling_mean的使用

    Boost.Accumulators is both a library for incremental statistical computation as well as an extensibl ...

  4. 连接db2数据库出现No buffer space available (maximum connections reached?)

    Caused by: javax.naming.NamingException: [jcc][t4][2043][11550][3.57.82] 异常 java.net.SocketException ...

  5. 在myeclipse上发布自己的webservice

       什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过w ...

  6. MVCS框架的注意点

    1.Service最好用一个接口对应一个service(便于增加扩展方法) 2.除Services和Model外都需继承自各自对应的父类 3.View不要轻易重写Start和Awake方法(含与启动有 ...

  7. Sencha extjs 的安装

    delphi 的母公司Idera 突然就把sencha extjs 收购了,这确实是一个很好的消息,意味着delphi 开始在web方面开始发力, 目前delphi 集成extjs 的呼声越来越强烈, ...

  8. python使用Fabric模块实现自动化运维

    简介:Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行.文件上传.下载及完整 ...

  9. python 中 __name__ 的使用

    1. 如果模块是被导入,__name__的值为模块名字2. 如果模块是被直接执行,__name__的值为’__main__’   Py1.py #!/usr/bin/env python def te ...

  10. 创建视图&新建表按照视图结构

    create  view  V_tableTemp as  select a.* from TEMPCLIENT a ,TEMPCLIENTSTUFF b where a.CORNO<>' ...