【问题标题】: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;
    

    【讨论】:

    • 用你的方法,我只会在选项或应用程序关闭时提交
    猜你喜欢
    • 2017-06-05
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    相关资源
    最近更新 更多