Sybase SQL AnyWhere无规律丢失数据的问题
使用ado+delphi+sql anywhere 8开发cs应用,用commit提交事务后,发现有丢失数据的情况,没有什么规律,好像大约有5%左右的数据不能提交,事务提交数据量越小次数越多越容易出现丢失事务的情况,但如果每次提交大量数据则没有此现象。
已经明确证明不是delphi或ado的问题,因为同样的代码用其他数据库没有这种现象。
怀疑对象:事务提交延迟;事务提交在缓存中,没提交用户就关了客户程序;数据库选项默认值设置有问题
请高手指点,asa有无强制提交的办法?
[解决办法]
commit之后,有异常发生吗?应该可以捕获得到啊
[解决办法]
只要你commit,至于asa放在哪里,不用关心这个。
看一下,执行UpdateBatch(),CommitTrans() 之后数据库返回的状态信息。
[解决办法]
我的建议是:
1. 碰到异常时,把详细的异常信息打出来,看看是哪些update失败了
2. 调整事务隔离级,弄成Repeatable read吧。这样应该会减少事务之间的冲突。
[解决办法]