加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

初学sqlite3

发布时间:2020-12-12 20:44:18 所属栏目:百科 来源:网络整理
导读:这个东西不是属于ios的,但是是在学习ios的时候学习到的,所以也放在这里了。 1,今天看了SQLite数据库的东西,以前没有接触过这个数据库,这是一个嵌入式数据库,不需要配置。每一个statement都和一个connection关联,一个connection可以包含多个statement

这个东西不是属于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*);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读