这个东西不是属于ios的,但是是在学习ios的时候学习到的,所以也放在这里了。
1,今天看了SQLite数据库的东西,以前没有接触过这个数据库,这是一个嵌入式数据库,不需要配置。每一个statement都和一个connection关联,一个connection可以包含多个statement,而且每个连接有一个与数据库关联的B-tree和一个Paper。对数据库的任何操作,一个连接存在于一个事务下,一个连接决不会同时存在多个事务下。
2,SQLite支持事务,触发器,不支持存储过程,对于多条数据的插入没有专门的语句,只能在程序中使用循环插入。
3,触发器支持insert,update,delete,例子:
Drop Trigger If Exists MAIN.[tggr_xtmp];
Create Trigger MAIN.[tggr_xtmp] AFTER INSERT On [data_info] FOR EACH ROW
begin
insert into data_info values(‘aaaaaaaaaaa');
end;
这样,只要插入一条数据,就会再插入一条aaaaaaaaaaa
4,使用SQLite3的基本步骤:
1)建立连接:
int result = sqlite3_open([realPath UTF8String],&dbPointer);//打开可写路径文件
2)生成一个可执行的对象:
sqlite3_stmt *stmt;
3)需要执行的语句:
int result = sqlite3_prepare_v2(db,"SELECT * FROM data_info",-1,&stmt,NULL);
4)关闭stmt:
sqlite3_finalize(stmt);
5)关闭连接:
int result = sqlite3_close(dbPointer);
5,一些常用API: INT sqlite3_prepare(sqlite3*,const CHAR*,INT,sqlite3_stmt**,const CHAR**); INT sqlite3_bind_double(sqlite3_stmt*,DOUBLE); INT sqlite3_bind_int(sqlite3_stmt*,INT); INT sqlite3_bind_int64(sqlite3_stmt*,long long INT); INT sqlite3_bind_null(sqlite3_stmt*,INT); INT sqlite3_bind_text(sqlite3_stmt*,INT n,void(*)(void*)); INT sqlite3_bind_text16(sqlite3_stmt*,const void*,void(*)(void*)); INT sqlite3_step(sqlite3_stmt*);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。