Sqlite简单使用方法
Sqlite简单使用方法 1.首先要添加 libsqlite3.dylib 库。在添加库的时候,你会发现有个libsqlite3.dylib 还有一个 libsqlite3.0.dylib。这样你就会疑问,两个的区别。这里介绍一下:实际上libsqlite3.dylib本身是个链接,它指向了libsqlite3.0.dylib。libsql
Sqlite简单使用方法
1.首先要添加 libsqlite3.dylib 库。在添加库的时候,你会发现有个libsqlite3.dylib 还有一个 libsqlite3.0.dylib。这样你就会疑问,两个的区别。这里介绍一下:实际上libsqlite3.dylib本身是个链接,它指向了libsqlite3.0.dylib。libsqlite3.dylib总是指向最新的sqlite动态库。
2.在view中引入框架(2种方法)。
(1)#import
sqlite3 *database;
3.sqlite数据库是文件数据库,是保存在文件系统中的。在Documents下创建数据库(路径)。
NSArray *documentsPath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
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,NULL, &errorMsg) ==SQLITE_OK) {
NSLog(@"create ok");
}
6.向表中插入记录
const char *insertSql ="insert into persons (name) values ('zhangsan')";
if (sqlite3_exec(database, insertSql,NULL,NULL, &errorMsg) ==SQLITE_OK) {
NSLog(@"insert ok.");
}else{
NSLog(@"error:%s",errorMsg);
sqlite3_free(errorMsg);
}
7.查询结果
const char *selectSql ="select id,name from persons";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, selectSql, -1, &statement, nil) == SQLITE_OK) {
NSLog(@"select ok");
while (sqlite3_step(statement) ==SQLITE_ROW) {
int _id =sqlite3_column_int(statement,0);
char *name = (char*)sqlite3_column_text(statement,1);
NSString *nsAddressStr = [[NSStringalloc]initWithUTF8String:name];
NSLog(@"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_CONSTRAINT 19 /* 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为例,简单介绍一下错误解决的思路和方法:
#define SQLITE_ERROR 1 /* SQL error or missing database */

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

硬盘序列号是硬盘的一个重要标识,通常用于唯一标识硬盘以及进行硬件识别。在某些情况下,我们可能需要查询硬盘序列号,比如在安装操作系统、查找正确设备驱动程序或进行硬盘维修等情况下。本文将介绍一些简单的方法,帮助大家查询硬盘序列号。方法一:使用Windows命令提示符打开命令提示符。在Windows系统中,按下Win+R键,输入"cmd"并按下回车键即可打开命

DirectX修复工具是专业的系统工具,主要功能是检测当前系统的DirectX状态,如果发现异常就可以直接修复。可能还有很多用户不清楚DirectX修复工具怎么用吧,下面就来看看详细教程。 1、使用修复工具软件进行修复检测。 2、如果修复完成后提示C++组件存在异常的问题,请点击取消按钮,然后点击工具菜单栏。 3、点击选项按钮,选择扩展,点击开始扩展按钮。 4、扩展完成后再重新进行检测修复即可。 5、如果修复工具操作完成后仍未解决问题,可以尝试卸载重新安装报错的程序。

HTTP525状态码简介:了解其定义和使用方法HTTP(HypertextTransferProtocol)525状态码是指服务器在SSL握手过程中发生错误,导致无法建立安全连接。在传输层安全性(TLS)握手期间发生错误时,服务器将返回此状态码。该状态码属于服务器错误类别,通常表示服务器配置或设置问题。当客户端尝试通过HTTPS连接到服务器时,服务器无

有很多朋友还不知道百度网盘怎么用,所以下面小编就讲解了百度网盘的使用方法,有需要的小伙伴赶紧来看一下吧,相信对大家一定会有所帮助哦。第一步:安装好百度网盘后直接登录(如图所示);第二步:然后可根据页面提示选择“我的分享”和“传输列表”(如图所示);第三步:在“好友分享”里可以把图片和文件直接分享给好友(如图所示);第四步:接着选择“分享”后可勾选电脑文件或者网盘文件(如图所示);第五步:然后就可以寻找好友(如图所示);第六步:还可以在“功能宝箱”中寻找自己需要的功能(如图所示)。上面就是小编为大

电脑随着使用的时间越长越容易出现故障,这个时候就需要小伙伴去用自己的方法修复,那么怎么做比较简便呢?今天就给大家带来用命令提示符修复的教程。win10自动修复命令提示符怎么用:1、按下“Win+R”输入cmd打开“命令提示符”2、输入chkdsk查看修复命令3、如果需要查看其它地方也可以添加别的分区比如“d”4、输入执行命令chkdskd:/F即可5、如果在修改过程中被占用,可输入Y继续

复制粘贴快捷键使用方法复制粘贴是我们在日常使用电脑时经常会遇到的操作。为了提高工作效率,熟练掌握复制粘贴快捷键是非常重要的。本文将介绍一些常用的复制粘贴快捷键使用方法,帮助读者更加方便地进行复制粘贴操作。复制快捷键:Ctrl+CCtrl+C是复制的快捷键,通过按住Ctrl键然后再按C键,即可将选中的文字、文件、图片等内容复制到剪贴板。要使用该快捷键,

KMS激活工具是一种用于激活微软Windows和Office产品的软件工具。KMS是KeyManagementService的缩写,即密钥管理服务。KMS激活工具通过模拟KMS服务器的功能,使得计算机可以连接到这个虚拟的KMS服务器,从而实现对Windows和Office产品的激活。KMS激活工具体积小巧,功能强大,可以一键永久激活,无需联网状态就可以激活任何版本的window系统和任何版本的Office软件,是目前最成功的且经常更新的Windows激活工具,今天小编就给大家介绍一下kms激活工

potplayer是一款非常强大的媒体播放器,但不少伙伴还不知道potplayer怎么用,今天小编就来详细介绍一下potplayer的使用方法,希望能帮助大家。1、PotPlayer快捷键PotPlayer播放器默认常用快捷键如下:(1)播放/暂停:空格(2)音量:鼠标滚轮,上下方向键(3)前进/后退:左右方向键(4)书签:P-添加书签,H-查看书签(5)全屏/还原:Enter(6)倍速:C-加速,X-减速,Z-复位(按一次调整0.1倍速度,可以在0.2到12倍速之间调节)(7)上/下一帧:D/
