《IOS积木起飞》 之 ——error calling sqlite3_step (21: out o
我是IOS初学者,如果文章有错误尽管喷我并指正,如果您只是喷我并不告诉我正确答案,我就要骂娘了!
下面描述的是我碰到的错误及解决办法。
今天遇到错误:error calling sqlite3_step (21: out of memory )rs
1:错误代码 sql:普通查询语句 FMResultSet *rs = [db executeQuery:sql]; if (![rs next]) { --------------------------------------错误地方 // 插入 }else{ //更新 }
楼主目的是,先查询一遍,如果没有就执行插入。如果存在就执行更新操作! 第一次运行执行插入没问题OK 那么问题来了,尼玛 第二次执行相同操作 竟然还是插入 。你别说我逻辑错了,请往下看! 第三次执行操作,what's up !! 竟然执行了更新! 楼主凌乱了,难道第一次没有插入成功? 看了下数据库db文件(sqlite),他真的插入两条! 这是什么原因呢? 好了不卖关子了,不然你们又要喷我了! 看了下LOG,报了上述错误,百度一下(别说我不会谷歌),各种解决办法,有的说资源提前关闭了或者没有关闭。都没有解决我的问题。 然后经过试验。代码改成如下!
这时候问题出现了。
FMResultSet *rs = [db executeQuery:sql]; Boolean flag = [rs next]; if (! flag) { --------------------------------------错误消失了 // 插入 }else{ //更新 } 这样问题及解决了!
楼主是做安卓的,java里赋值完全可以按照第一种方式啊。为什么OC这里会出错! 求大神解答? 一万个么么哒! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |