if ((!obj) || ((NSNull *)obj == [NSNull null])) {

sqlite3_bind_null(pStmt, idx);

}

// FIXME - someday check the return codes on these binds.

else if ([obj isKindOfClass:[NSData class]]) {

const void *bytes = [obj bytes];

if (!bytes) {

// it's an empty NSData object, aka [NSData data].

// Don't pass a NULL pointer, or sqlite will bind a SQL null instead of a blob.

bytes = "";

}

sqlite3_bind_blob(pStmt, idx, bytes, (int)[obj length], SQLITE_STATIC);

}

else if ([obj isKindOfClass:[NSDate class]]) {

if (self.hasDateFormatter)

sqlite3_bind_text(pStmt, idx, [[self stringFromDate:obj] UTF8String], -1, SQLITE_STATIC);

else

sqlite3_bind_double(pStmt, idx, [obj timeIntervalSince1970]);

}

else if ([obj isKindOfClass:[NSNumber class]]) {

if (strcmp([obj objCType], @encode(BOOL)) == 0) {

sqlite3_bind_int(pStmt, idx, ([obj boolValue] ? 1 : 0));

}

else if (strcmp([obj objCType], @encode(int)) == 0) {

sqlite3_bind_int64(pStmt, idx, [obj longValue]);

}

else if (strcmp([obj objCType], @encode(long)) == 0) {

sqlite3_bind_int64(pStmt, idx, [obj longValue]);

}

else if (strcmp([obj objCType], @encode(long long)) == 0) {

sqlite3_bind_int64(pStmt, idx, [obj longLongValue]);

}

else if (strcmp([obj objCType], @encode(unsigned long long)) == 0) {

sqlite3_bind_int64(pStmt, idx, (longlong)[obj unsignedLongLongValue]);

}

else if (strcmp([obj objCType], @encode(float)) == 0) {

sqlite3_bind_double(pStmt, idx, [obj floatValue]);

}

else if (strcmp([obj objCType], @encode(double)) == 0) {

sqlite3_bind_double(pStmt, idx, [obj doubleValue]);

}

else {

sqlite3_bind_text(pStmt, idx, [[obj description] UTF8String], -1, SQLITE_STATIC);

}

}

else {

sqlite3_bind_text(pStmt, idx, [[obj description] UTF8String], -1, SQLITE_STATIC);

}

数据类型的处理(提取自FMDB)的更多相关文章

  1. Matlab编程知识点

    容易忘记的小知识点: Matlab程序首行程序: clear:close all:clc:程序运行开始最好清理下之前残留的各种数据,不然matlab可能会出错. clear(清理变量空间),close ...

  2. 浅谈postgresql的GIN索引(通用倒排索引)

    1.倒排索引原理 倒排索引来源于搜索引擎的技术,可以说是搜索引擎的基石.正是有了倒排索引技术,搜索引擎才能有效率的进行数据库查找.删除等操作.在详细说明倒排索引之前,我们说一下与之相关的正排索引并与之 ...

  3. Beta阶段——第5篇 Scrum 冲刺博客

    Beta阶段--第5篇 Scrum 冲刺博客 标签:软件工程 一.站立式会议照片 二.每个人的工作 (有work item 的ID) 昨日已完成的工作 人员 工作 林羽晴 完成了邮箱发送功能的测试,测 ...

  4. iOS 数据储存--SQLite 操作数据库-FMDB,sqlite数据类型,保存图片,demo

    1.SQLite 语句中 数据类型的储存 /* 不区分大小写 char(长度).字符串 NULL. 空值 INTEGER. 整型 REAL.浮点型 TEXT.文本类型 BLOB. 二进制类型,用来存储 ...

  5. c#---部分;把数组或者结构体存入集合里,然后再从集合中取出之后,输出;foreach既可以用到提取数组重点额数据,也可以提取集合中的数据(前提是集合中的元素是相同数据类型)

    1.输入班级人数,统计每个人的姓名,性别,年龄:集合与数组 //Console.Write("请输入班级人数:"); //int a = int.Parse(Console.Rea ...

  6. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

  7. Python高手之路【二】python基本数据类型

    一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...

  8. 【原】FMDB源码阅读(二)

    [原]FMDB源码阅读(二) 本文转载请注明出处 -- polobymulberry-博客园 1. 前言 上一篇只是简单地过了一下FMDB一个简单例子的基本流程,并没有涉及到FMDB的所有方方面面,比 ...

  9. 【原】FMDB源码阅读(一)

    [原]FMDB源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 说实话,之前的SDWebImage和AFNetworking这两个组件我还是使用过的,但是对于 ...

随机推荐

  1. 两种会话状态之Session会话

    什么是Session 使用Cookie和附加URL参数都可以将上一次请求的状态信息传递到下一次请求中,但是如果传递的状态信息较多,将极大降低网络传输效率和增大服务器端程序处理的难度. Session技 ...

  2. 使用MySQL数据库

    登录到MySQL 当 MySQL 服务已经运行时, 我们可以通过MySQL自带的客户端工具登录到MySQL数据库中, 首先打开命令提示符, 输入以下格式的命名: mysql -h 主机名 -u 用户名 ...

  3. Spring中Quartz调度器的使用

    一.Quartz的特点 * 按作业类的继承方式来分,主要有以下两种: 1.作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式 2. ...

  4. 从PC跳转至wap

    <script language="JavaScript">function mobile_device_detect(url){var thisOS=navigato ...

  5. C# 文件流基本操作步骤

    private void button1_Click(object sender, EventArgs e) { FileStream fs = new FileStream("123.tx ...

  6. CodeForces 569A 第八次比赛 C题

    Description Little Lesha loves listening to music via his smartphone. But the smartphone doesn't hav ...

  7. EMVTag系列17《9F66 终端交易属性》

    字节:1 8    1 – 支持非接触磁条 (MSD) 0– 不支持非接触磁条 (MSD) 7    1 – 支持非接触PBOC 0– 不支持非接触PBOC 6    1 – 支持非接触qPBOC 0 ...

  8. hdu 4941 Magical Forest

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4941 Magical Forest Description There is a forest can ...

  9. 部署ghost博客

    wget https://ghost.org/zip/ghost-0.6.4.zip npm install --production NODE_ENV=production npm start &g ...

  10. 44.do文件格式

    style1: transcript onif {[file exists rtl_work]} {<span style="white-space:pre"> < ...