数据类型的处理(提取自FMDB)
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);
}
最新文章
- angular之上滑换页指令
- 洛谷P1373 小a和uim之大逃离[背包DP]
- [uwsgi] no request plugin is loaded, you will not be able to manage requests.
- 409. Longest Palindrome
- php实现图片缩放功能类
- window.open参数设置及如何全屏显示(转)
- vb6如何将MSHFlexGrid控件中的内容导出为Excel
- SQL server 开启 cmdshell
- UIScrollView控件详解
- iOS7以后的侧滑返回上一页
- 人工智能之基于face_recognition的人脸检测与识别
- sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系
- maven相关配置
- JavaScript:document.execCommand()的用法
- 用Handler的post()方法来传递线程中的代码段到主线程中执行
- Sorted sets
- [转]Ubuntu默认root用户密码
- JDK的安装与卸载
- ifconfig与内核通信 ifreq 结构体分析和使用
- Workflow:采用坐标变换(移动和旋转)画箭头