ZEOSDBO+SQLite+Delphi7不常见异常信息的解决

前端之家收集整理的这篇文章主要介绍了ZEOSDBO+SQLite+Delphi7不常见异常信息的解决前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

【2016年1月11日】

这段时间把一个运行在sqlServer上的应用,改数据库sqlite上,在一张表上追加一条记录的时候,报出如下异常:

sql Error: constraint Failed: library routine called out of sequence

查看各种技术解释,有说sqlite数据库文件指向位置不正确的,有一外国哥们说在设计期connect了开发库,发布之后连接不到运行库的,还有官方解释如下:

BEGIN

1.调用API所用到的指针,第一种情况是没有从sqlite3_open()或者是sqlite3_open16()获得,第二种情况是sqlite3_open()函数已经将数据库关闭了。
2. 两个或者更多的线程同时访问该数据库。对于这样的问题,可以通过加上锁进行解决
3. sqlite3_step()所用到的变量statement指针,第一种情况是该指针不是从sqlite3_prepare()或者是sqlite3_open16()获得的,第二种情况是该指针已经被销毁或者被释放。这个和1中的情况是一样的,不同的是使用这种指针的函数,两者可以和为一种情况。
4. 试图将values绑定到一个正在运行的statement上。该解释未遇到。

END;

顿时凌乱的不行了,我是用控件访问数据库的,而且ZEOSDBO控件相对还是成熟的啊,官方解释的底层问题应该不是应用层关心的啊

所有连接和query都是动态创建的,不存在设计期和发布后的数据库连接不正确,而且跟踪创建过程,指向没有问题

改query的各种属性,依旧无效,尼玛,崩溃中有木有

最后一个同事过来说,对了,**表昨天改了结构,有个**字段是NOT NULL的,你写程序的时候注意一下。赶紧去看应用的字段赋值,果然没有这个字段,在代码加上,程序顿时通畅了。


尼玛,sqlite你的异常提示敢不敢再奇葩一点?哎,累觉不爱了……

原文链接:https://www.f2er.com/sqlite/199112.html

猜你在找的Sqlite相关文章