1

我正在将 DBExpress 与 blackfish 一起使用。

如何进行多笔交易?

我有几个 GRID 都在一次编辑中,所有的都必须一次保存。开始编辑和发布是由最终用户决定的,因为他工作,并且在应用程序的不同位置,因此很难在一次事务中完成。

更新:

好的,问题是应用程序同时工作,我必须尽快提交新数据,以便其他用户可以访问它。

因此,网格信息将在发布后不久提交,或者与发布一起提交。

4

1 回答 1

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;
于 2009-12-29T12:03:49.960 回答