sqlite常用语法详细介绍

1、SQL语句的预编译:将语句转为数据流,执行语句前检查语句的语法,但不能知道语句是否能查出结果。此方法有返回值

预编译成功则返回SQLITE_OK----0否则返回SQLITE_ERROR----1
int sqlite3_prepare_v2(
  sqlite3 *db,                 //指向数据库的指针
  const char *zSql,         //SQL语句
  int nByte,                   //SQL语句的长度 (一般用-1,系统可以自动算出字符串得长度)
  sqlite3_stmt **ppStmt, //指向语句的指针
  const char **pzTail       //SQL中没有用到的一部分,一般为空
);

2、SQL语句的值绑定
*此类方法均有返回值  预编译成功则返回SQLITE_OK----0否则返回SQLITE_ERROR----1
//对整数值的绑定
int sqlite3_bind_int(
sqlite3_stmt*,            //指向语句的指针
int,                      //占位符的序号(从1开始以此类推)
int                       //绑定的值
);

//对字符串值的绑定
int sqlite3_bind_text(
sqlite3_stmt*,            //指向语句的指针
int,                      //占位符的序号(从1开始以此类推)
const char*,              //要绑定的值(这里要c类型的字符串(CString),一般我们使用的是oc的字符串(NSString*)要通过- (__strong const char *)UTF8String转一下就可以了)
int n,                    //该字符串的长度(一般用-1,系统可以自动算出字符串得长度)
void(*)(void*)            //回调函数(这里博主还没用过所以不是很了解以后会慢慢更新)
);

//对二进制数据值的绑定 一般用于图片的存取
int sqlite3_bind_blob(
sqlite3_stmt*,            //指向语句的指针
int,                      //占位符的序号(从1开始以此类推)
const void*,              //要绑定的值(这里要的是c类型的比特(Byte),一般我们使用的是oc的NSDATA(NsData*)要通过- (const void *)bytes转一下就可以了)
int n,                    //数据的长度(用- (NSUInteger)length得到  这里为什么不用-1呢?因为-1对于算字符串长度在行,其他的不一定准所以这里我们手动算出数据的长度)
void(*)(void*)            //回调函数(这里博主还没用过所以不是很了解以后会慢慢更新)
);

3、SQL语句的取值(从数据库中对每一列取值)
//对整数字段的取值
int sqlite3_column_int(
sqlite3_stmt*,            //指向语句的指针
int iCol                  //数据库中表中列的序号(从0开始以此类推)
);

//对字符串字段的取值
*注意这里我们取得是无符号的c字符串我们要先转为有符号C字符串再转为OC字符串
例sname为oc字符串
NSString *sname=[NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 1)];

const unsigned char *sqlite3_column_text(
sqlite3_stmt*,            //指向语句的指针
int iCol                  //数据库中表中列的序号(从0开始以此类推)
);

//对二进制字段的取值
*注意这里我们取得是c二进制我们要转为oc二进制(我们要将byte(c)转为nsdata(oc)通过+ (id)dataWithBytes:(const void *)bytes length:(NSUInteger)length;因为这里需要数据的长度所以需要调用int sqlite3_column_bytes(sqlite3_stmt*, int iCol);获取数据的长度)

int length=sqlite3_column_bytes(stmt,3);//获取二进制数据的长度
NSData *img=[NSData dataWithBytes:sqlite3_column_blob(stmt, 3) length:length]; //将二进制数据转换位NSData对象
 
const void *sqlite3_column_blob(
sqlite3_stmt*,            //指向语句的指针
int iCol                  //数据库中表中列的序号(从0开始以此类推)
);

时间: 2024-11-05 20:25:47

sqlite常用语法详细介绍的相关文章

哪种机械键盘更适合打游戏? 机械键盘5种常用机械轴详细介绍

哪种机械键盘更适合打游戏? 机械键盘5种常用机械轴详细介绍 机械键盘 12-08 (4)青轴 最具特点的就是青轴,青轴一般是打字员的梦想,很少用于游戏,不过是本人的最爱,特点是只有当声音响起的时候按键才被触发,因此打字的时候噼里啪啦,无论是指尖还是心理上都得到了极大满足. 但是其"机动性"打字和双击时效果并不是很好,因为触底比"触发"要高,这款特别适合输入文字,但是要注意噪音很大,但这也是我喜欢MX青轴的原因之一. (5)白轴 最后说一下白轴,目前白轴基本已经停产了

sqlite常用语法 增删 修改 例子

1 例子:有个学生类数据库studentDb.sqlite,使用sqlite进行增减修改操作 2 一般时候想要操作数据库,需要先建立连接.我先新建一个Db类作为数据连接类(Db*) 3 在做以前一定要先导入libsqlite3.dylib框架 拽进studentDb.sqlite文件 4 *********Db.h 5 #import 6 #import //导入数据库文件 7 @interface Db : NSObject 8 +(sqlite3*)openDb;//声明打开数据库方法声明

.net MVC,Razor语法详细介绍

MVC框架 Model View Controller,其实是业务层和视图层的框架. 该框架的特点是: 1.业务层非常清晰,一个控制器里的一个Action只完成一件事情. 2.与视图交互逻辑也非常清晰,通过Model传递,或者说将业务处理完成的数据,封装成视图模型,传给视图,还提供了ViewBag属性,传递一些未封装在视图模型里的参数. 3.提供了路由技术,以此可以简化URL,并能非常方便的写出伪静态. 4.提供了参数绑定特性BindAttribute,能够方便快捷的获取Request里的参数,

Redis常用命令详细介绍

一.字符串 字符串键是Redis最基本的键值对类型,将一个单独的键和一个单独的值关联起来.通过字符串键,不仅可以存储和读取字符串,如果输入能被解释为整数和浮点数,还能执行自增或自减操作. 1.SET:设置字符串键的值 命令 SET key value [EX seconds|PX milliseconds] [NX|XX] 效果 为字符串键设置值,如果字符串键不存在,创建这个字符串键:如果已经存在,直接更新值.EX和PX选项设置键的生存时间(以秒或毫秒为单位).当生存时间消耗殆尽后,这个键就会被

java常用类详细介绍及总结:字符串相关类、日期时间API、比较器接口、System、Math、BigInteger与BigDecimal

一.字符串相关的类 1.String及常用方法 1.1 String的特性 String:字符串,使用一对""引起来表示. String声明为final的,不可被继承 String实现了Serializable接口:表示字符串是支持序列化的. 实现了Comparable接口:表示String可以比较大小 String内部定义了final char[] value用于存储字符串数据 String:代表不可变的字符序列.简称:不可变性. 体现: 当对字符串重新赋值时,需要重写指定内存区域赋

linux配置网卡IP地址命令详细介绍及一些常用网络配置命令

linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-12-17 0 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置的方法: 即时生效(重启后失效): ifconfig eth0 192.168.1.102 netmask 255.255.255.0 //添加IP地址 route add default gw 192.168.1.1 //添加网关 启动生效: vim /etc/sysconfig/ne

MongoDB常用命令及例子详细介绍(三)

常用命令,及其高级命令使用介绍 一:增删改查的高级应用详细介绍: 增:***插入的时候c1不在的话将自动创建*** 不管插入那条记录都会自动给带个值id 自增主键唯一 insert 和 save(当id冲突是则修改,否则插入) 一:id主键不冲突的情况没区别 db.c1.insert({name:"leyangjun"}); db.c1.insert({name:"leyangjun"}); insert插入的值id都是唯一的,不会主键id冲突 db.c1.save

较详细介绍IBM AIX操作系统上常用的korn shell的基础知识

[导读]较详细介绍IBM AIX操作系统上常用的korn shell的基础知识. Korn Shell执行命令的顺序1.关键字,如if,for,function等2.别名(Aliases)3.内部命令,如cd, whence和函数等4.函数Functions5.脚本Scripts.在PATH中的可执行程序※找到命令的根源用下面的命令:whence -v command或:type commandAlias(别名)alias aliasname=command取消一个别名:unalias alia

(基础篇)正则表达式的语法汇总与详细介绍

用好正则表达式往往会起到事半功倍的效果,以下是对PHP正则表达式的语法汇总和详细介绍. 首先,让我们看看两个特别的字符:'^' 和 '$' 他们是分别用来匹配字符串的开始和结束,一下分别举例说明 "^The": 匹配以 "The"开头的字符串; "of despair$": 匹配以 "of despair" 结尾的字符串; "^abc$": 匹配以abc开头和以abc结尾的字符串,实际上是只有abc与之匹配