Sqlite 简单使用方法

前端之家收集整理的这篇文章主要介绍了Sqlite 简单使用方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Sqlite 简单使用方法

1.首先要添加libsqlite3.dylib 库。在添加库的时候,你会发现有个libsqlite3.dylib 还有一个libsqlite3.0.dylib。这样你就会疑问,两个的区别。这里介绍一下:实际上libsqlite3.dylib本身是个链接,它指向了libsqlite3.0.dylib。libsqlite3.dylib总是指向最新的sqlite动态库。

2.在view中引入框架(2种方法)。

(1)#import<sqlite3.h> (2)#import"/usr/include/sqlite3.h"

sqlite3*database;

3.sqlite数据库文件数据库,是保存在文件系统中的。 在Documents下创建数据库(路径)

NSArray*documentsPath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMaskYES);

NSString*databaseFilePath = [[documentsPathobjectAtIndex:0]stringByAppendingPathComponent:@"mydb"];

4.打开数据库

if(sqlite3_open([databaseFilePathUTF8String],&database) ==sqlITE_OK) {

NSLog(@"open sqlite db ok." }

5. 建表语句

char*errorMsg;

constchar*createsql ="create table if not exists persons(id integer primary key autoincrement,name text)";

if(sqlite3_exec(database,createsql,NULL,&errorMsg) ==(@"create ok"6. 向表中插入记录

const*insertsql ="insert into persons (name) values ('zhangsan')"(@"insert ok." }else{

NSLog(@"error:%s",errorMsg);

sqlite3_free(errorMsg);

7. 查询结果 *selectsql ="select id,name from persons" sqlite3_stmt*statement;

sqlite3_prepare_v2(sql,-1,&statement,159)">nil) ==(@"select ok" while(sqlite3_step(statement) ==sqlITE_ROW) {

int_id =sqlite3_column_int(statement,0);

char*name = (char*)sqlite3_column_text(statement,211)">1);

NSString*nsAddressStr = [[NSStringalloc]initWithUTF8String:name];

@"id:%i name:%@",_id,nsAddressStr);

}

}

8.关闭数据库

sqlite3_close(database

sqlite3 *database;数据库句柄

sqlite3_stmt 用于保存编译好的sql语句

sqlite3_open() 打开数据库,没有的时候创建数据库

sqlite3_exec() 执行非查询sql语句

sqlite3_prepare() 准备sql语句,执行select语句

sqlite3_step() 再调用sqlite3_prepare后,使用这个函数在记录集中移动

sqlite3_finalize() 释放sql资源

sqlite3_close() 关闭数据库

sqlite3_bind_int(stmt,1,1); //绑定第一个int参数

sqlite3_bind_text(stmt,2,[? UTF8String],-1,sqlITE_TRANSIENT);//绑定第二个字符串参数

记录集中获取字段

sqlite3_column_int() 取int类型数据

sqlite3_column_text() 取text型数据

sqlite3_column_blob() 取blob型数据

#define sqlITE_OK 0/* Successful result */

/* beginning-of-error-codes */

#define sqlITE_ERROR 1/* sql error or missing database */

#define sqlITE_INTERNAL 2/* Internal logic error in sqlite */

#define sqlITE_PERM 3/* Access permission denied */

#define sqlITE_ABORT 4/* Callback routine requested an abort */

#define sqlITE_BUSY 5/* The database file is locked */

#define sqlITE_LOCKED 6/* A table in the database is locked */

#define sqlITE_NOMEM 7/* A malloc() Failed */

#define sqlITE_READONLY 8/* Attempt to write a readonly database */

#define sqlITE_INTERRUPT 9/* Operation terminated by sqlite3_interrupt()*/

#define sqlITE_IOERR 10/* Some kind of disk I/O error occurred */

#define sqlITE_CORRUPT 11/* The database disk image is malformed */

#define sqlITE_NOTFOUND 12/* NOT USED. Table or record not found */

#define sqlITE_FULL 13/* Insertion Failed because database is full */

#define sqlITE_CANTOPEN 14/* Unable to open the database file */

#define sqlITE_PROTOCOL 15/* NOT USED. Database lock protocol error */

#define sqlITE_EMPTY 16/* Database is empty */

#define sqlITE_SCHEMA 17/* The database schema changed */

#define sqlITE_TOOBIG 18/* String or BLOB exceeds size limit */

#define sqlITE_CONSTRAINT19/* Abort due to constraint violation */

#define sqlITE_MISMATCH 20/* Data type mismatch */

#define sqlITE_MISUSE 21/* Library used incorrectly */

#define sqlITE_NOLFS 22/* Uses OS features not supported on host */

#define sqlITE_AUTH 23/* Authorization denied */

#define sqlITE_FORMAT 24/* Auxiliary database format error */

#define sqlITE_RANGE 25/* 2nd parameter to sqlite3_bind out of range */

#define sqlITE_NOTADB 26/* File opened that is not a database file */

#define sqlITE_ROW 100/* sqlite3_step() has another row ready */

#define sqlITE_DONE 101/* sqlite3_step() has finished executing */

调用sqlite3_prepare_v2() 函数的时候,是一个将sql语句编译为sqlite内部一个结构体(sqlite3_stmt).

该结构体中包含了将要执行的的sql语句的信息.

通常情况下,应该是返回0。还有一些时候是返回其他数值。

我以1为例,简单介绍一下错误解决的思路和方法

1/* sql error or missing database */

原文链接:https://www.f2er.com/sqlite/200696.html

猜你在找的Sqlite相关文章