如何在DBExpress中执行多个事务

时间:2009-12-29 11:12:18

标签: delphi transactions dbexpress blackfish

我正在使用DBExpress和黑鱼。

如何进行多笔交易?

我有几个GRID都在同时进行编辑,所有这些都必须立即保存。 开始编辑和发布将由最终用户在他工作时以及在应用程序的不同位置确定,因此在一次交易中很难做到。

更新:

确定问题是应用程序在并发中工作,我必须尽快提交新数据,以便其他用户可以访问它。

因此,网格信息将在帖子后不久或帖子中提交。

1 个答案:

答案 0 :(得分: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;