Delphi中数据集CacheUpdates属性与SQL事务联合应用代码示例

  --上面的语句检查是否符合保存条件
  DMMain.conMain.StartTransaction;
  try
    try
      if bSaveAdd then
      begin
        sProcess := '更新单据编号发生错误';
        msqry_Zb.Edit;
        msqry_Zb.FieldByName('crkzb_Dh').AsString := sNewDjbh;
        UpdateNewDjBh(spuDjlxBh, sNewDjbh);
      end
      else //如查为单据修改操作则更新修改次数
      begin
        msqry_Zb.Edit;
        msqry_Zb.FieldByName('CRKZB_XGCS').Value := msqry_Zb.FieldByName('CRKZB_XGCS').OldValue + 1;
      end;
      sProcess := '更新单据明细单号发生错误';
      UpdateMxDjbh;     
      sProcess := '保存单据明细数据发生错误';
      msqry_Mx.ApplyUpdates;
      sProcess := '保存付款明细数据发生错误';
      msqry_Sk.ApplyUpdates;
      sProcess := '保存单据主表数据发生错误';
      msqry_Zb.Post;
      sProcess := '提交数据库事务更新';
      DMMain.conMain.Commit;
      Result := True;
    except
      on E: Exception do
      begin
        msqry_Mx.RestoreUpdates;
        msqry_Sk.RestoreUpdates;
        DisPoseDBTranExcept(sProcess, E);
      end;
    end; //end try except
    if Result then
    begin
      msqry_Mx.CommitUpdates;
      msqry_Sk.CommitUpdates;
      if bSaveAdd then
        spuDjBh := sNewDjbh;
    end;
  finally
    CheckInTranRollBack;
  end; //end try finally
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值