在每隔100毫秒向数据库插入数据时,有时候会出现:SQLITE_ERROR[1]:SQL logic error or missing database错误。是为什么?
------解决方案--------------------------------------------------------
确保100ms以内你的数据能完全插入进去?
------解决方案--------------------------------------------------------
你如果在循环开始之前,执行:
db.execDML("begin transaction");
循环结束之后,再执行:
db.execDML("commit")
就不会有问题了。
否则,每次执行insert,都隐含提交事务,频繁打开文件,速度会越来越慢。最后很可能就出错。
------解决方案--------------------------------------------------------
使用事务没有,提交没有?
------解决方案--------------------------------------------------------
是不是几个线程使用同一个handle在操作?搞个锁,其实即使单线程用下事务,那个性能也已经足够了。
------解决方案--------------------------------------------------------
像这种大数据的插入最好开事务。