【问题标题】:How can I do multi Transaction in DBExpress如何在 DBExpress 中进行多事务
【发布时间】:2009-12-29 11:12:17
【问题描述】:
我正在使用带有 blackfish 的 DBExpress。
如何进行多笔交易?
我同时编辑了多个 GRID,所有这些都必须同时保存。
开始编辑和发布由最终用户决定,在他工作时,在应用程序的不同位置,因此很难在一次事务中完成。
更新:
好的,问题是应用程序以并发方式工作,我必须尽快提交新数据,以便其他用户可以访问它。
因此,网格信息将在发布后不久提交,或者与发布一起提交。
【问题讨论】:
标签:
delphi
transactions
dbexpress
blackfish
【解决方案1】:
交易在各种数据集上“持续”工作。如果您使用 dbexpress,那就更好了。简单地说,让您的最终用户在各种网格上进行所需的所有编辑、删除和发布,当您需要保存他的工作时,请执行以下操作:
var
mytransaction : TDBXTransaction;
begin
mytransaction := sqlconnection1.BeginTransaction;
try
if clientdataset1.ChangeCount > 0 then clientdataset1.ApplyUpdates(0);
...
if clientdatasetn.ChangeCount > 0 then clientdatasetn.ApplyUpdates(0);
sqlconnection1.CommitFreeAndNil(mytransaction);
except
sqlconnection1.RollbackFreeAndNil(mytransaction);
end;
end;