UpdateBatch与事务处理的一点总结

Posted jijm123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UpdateBatch与事务处理的一点总结相关的知识,希望对你有一定的参考价值。

对于某些设置或者提交,如果希望是全部修改完毕后才确定生效,可以将DataSet的LockType:=ltBatchOptimistic,这样就可以了。然后每次做的修改和改动都暂时保存在缓存中,必须通过UpdateBatch来提交入库。可以通过判断DataSet的UpdateStatus属性是否为usUnmodified就可以知道先前是否已经提交了改动了。

注意:对于用户已经Edit,但是未提交的修改,也要注意提示用户保存。由于没有提交前UpdateStatus并没有发生变化,所以还要注意判断是否ADOTable1.State=dsBrowse,以便提示用户是否保存。

    if (ADOTable1.UpdateStatus<>usUnmodified) or (Not (ADOTable1.State=dsBrowse)) then
    begin
    end;

这个用法也可以通过事务实现,操作前先通过ADOConnection的BeginTrans开始事务,提交修改是CommitTrans,回滚是RollbackTrans,判断是否处于事务中读取InTransaction属性即可。事务也有一个缺点,就是DataSet没有事务,如果多个DataSet使用一个ADOConnection,如果使用事务势必影响其他操作。而且有文章说事务处理起来比较耗费资源,至少比UpdateBatch费资源,呵呵~
---------------------
作者:crazycock
来源:CSDN
原文:https://blog.csdn.net/crazycock/article/details/147846
版权声明:本文为博主原创文章,转载请附上博文链接!

以上是关于UpdateBatch与事务处理的一点总结的主要内容,如果未能解决你的问题,请参考以下文章

JavaEE体系架构概述MyBatis总结

Java事务处理总结

复习与总结(并发控制)

复习与总结(并发控制)

mysql事务处理用法与实例详解

Spring 事务处理