《IOS积木起飞》 之 ——error calling sqlite3_step (21: out of memory )rs 错误

《IOS积木起飞》 之 ——error calling sqlite3_step (21: out of memory )rs 错误,第1张

概述我是IOS初学者,如果文章有错误尽管喷我并指正,如果您只是喷我并不告诉我正确答案,我就要骂娘了! 下面描述的是我碰到的错误及解决办法。 今天遇到错误:error calling sqlite3_step (21: out of memory )rs 1:错误代码 sql:普通查询语句  FMResultSet *rs = [db executeQuery:sql];     if (![rs ne

我是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这里会出错!

求大神解答?

一万个么么哒!

总结

以上是内存溢出为你收集整理的《IOS积木起飞》 之 ——error calling sqlite3_step (21: out of memory )rs 错误全部内容,希望文章能够帮你解决《IOS积木起飞》 之 ——error calling sqlite3_step (21: out of memory )rs 错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1170994.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存