http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4956|回复: 5

[常见问题] iOS使用SQLite时遇到的一些问题

[复制链接]
发表于 2018-12-12 14:28:40 | 显示全部楼层 |阅读模式
1.执行插入数据操作时一直提示

[logging] API call with invalid database connection pointer

600FC0A41D6EA8A29A874B76CF846A3E.jpg

找了好久,才发现执行第一次直接执行了添加操作,没有调用打开数据库的操作,所以,在每次操作完成后关闭了数据库,在操作之前一定要先打开数据库。

2.查询的数据显示是错乱的。如下图

8AD86AF6E39013BC73730F9E0E6940C0.jpg

原因是读取数据的索引是错误的,这里读取的索引一定要和创建表时的一致。

建表的顺序是这样的:

[Objective-C] 纯文本查看 复制代码
const char * sql = "CREATE TABLE IF NOT EXISTS student(ID INTEGER PRIMARY KEY AUTOINCREMENT, num integer,name 'text', 'sex' 'text','age' integer);";


而我读取的时候是这样的:

[Objective-C] 纯文本查看 复制代码
 Student *stu = [[Student alloc] init];
            //从伴随指针获取数据,第1列
            int num = sqlite3_column_int(stmt, 1);
            stu.num = num;
            //从伴随指针获取数据,第2列
            stu.name = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 2)] ;
            //从伴随指针获取数据,第4列
            stu.age = sqlite3_column_int(stmt, 3);
            //从伴随指针获取数据,第3列
            stu.sex = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 4)] ;
            


这里我需要说一下,按照我们创建表的语句来看,我们的字段应该只有 id num name sex 和age。实际上默认还有一个rowid,这个只要建表就会有,所以从我们创建的字段来看,我们的列的索引就是从1开始的。

上面我的age 和 sex 的索引读取是错误的,正确的应该是这样的:

[Objective-C] 纯文本查看 复制代码
Student *stu = [[Student alloc] init];
            //从伴随指针获取数据,第1列
            int num = sqlite3_column_int(stmt, 1);
            stu.num = num;
            //从伴随指针获取数据,第2列
            stu.name = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 2)] ;
            //从伴随指针获取数据,第3列
            stu.sex = [NSString stringWithUTF8String:(const char *)sqlite3_column_text(stmt, 3)] ;
            //从伴随指针获取数据,第4列
stu.age = sqlite3_column_int(stmt, 4);


demo地址




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2018-12-12 14:29:41 | 显示全部楼层
欢迎加入苏飞论坛(IOS),群聊号码:284526528
发表于 2018-12-12 14:32:50 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-12 14:46:16 | 显示全部楼层
无回帖,不论坛,这才是人道。
发表于 2018-12-12 16:49:56 | 显示全部楼层
楼主加油,我们都看好你哦。
发表于 2018-12-15 14:04:41 | 显示全部楼层
楼主加油,我们都看好你哦。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-22 14:46

© 2014-2021

快速回复 返回顶部 返回列表