在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
方法一(利用adoconnection.exe(sqlstate)): adoconnection1.begintrans;//开始事务
ADO的事务处理例子(Delphi){1、批量数据更新时要将ADOQUERY.LOCKTYPE=ltBatchOptimistic ,然后调用UpdateBatch()更新数据;
2、当ADOQUERY.LOCKTYPE=ltOptimistic 时调用post更新数据(当dbgrid换行时也自动调用post提交数据)
引用一篇博文: 今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性。
把控件DBGridEh的一列的checkbox设为true,将其绑定DataSourceA和DOQuery。用Button添加了一个事件,用来取消对checkbox的操作:ADOQuery.CancelBatch();可是只能取消最后一步的操作。检查了很长时间才发现在DBGridEh的DataSource的Dataset 下的LockType的属性设置问题,我设置成了:ItOptimistic 后来将此属性改为:ltBatchOptimistic 就可以了 在网上查了一下,有如下说法: 1.ADOQuery.Update;ADOQuery.Delete;不用设置属性. ADOQuery的属性含义: ltUnspecified 不特別指定 ADOConnection1.BeginTrans; //开始事务
try with ADOCommand1 do begin Connection:=ADOConnection1; commandtext:='update [country] set [population]=10000 where [name]=''Venezuela''';//正确的SQL语句 Execute; CommandText:='Wrong SQL Command';//错误的SQL Execute; ADOConnection1.CommitTrans; //提交事务 end; except on E: Exception do begin ADOConnection1.RollbackTrans; //如有异常,事务回滚 ShowMessage(E.Message); end end; end; |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论