首页 > 其他分享 >delphi FireDAC使用ApplyUpdates批量提交数据

delphi FireDAC使用ApplyUpdates批量提交数据

时间:2023-02-10 10:11:53浏览次数:49  
标签:begin Errors end FireDAC delphi 审核 PN ApplyUpdates

简单的设计一下界面,大致如下:

要求:审核或者反审核用户选择的数据

  1.当记录已审核时,再点审核会提示出错,反审核也一样

  2.正常点审核时,审核=true,审核人=当前用户名

  3.反审核时,审核=false,审核人=null

 实现代码:

procedure TForm1.UpdateData(flg: Boolean);
var
  i, n, Errors: Integer;
  PN, ID: string;
begin
  if flg then
    PN := 'TEST'     //用户名,按业务自己处理
  else
    PN := 'NULL';    //反审核,按业务自己处理

  with FDQuery1 do
  begin
    FetchOptions.AutoClose := False;  //取消自动关闭
    CachedUpdates := True;            //开户快储功能
    TV.Controller.SelectedRows[0].Focused := True;     //选择选中的第一行数据
    n := TV.datacontroller.GetSelectedCount;     //当前选择记录的长度
    try
      for i := 0 to n - 1 do
      begin
        Edit;
FieldByName('审核').Value := BoolToStr(flg);//按业务自己处理 FieldByName('审核人').Value := PN;//按业务自己处理
Next; end; FDConnection1.StartTransaction; //开始事务 Errors := ApplyUpdates(0); //尝试批量更新,并返回错误值 finally if Errors > 0 then FDConnection1.Rollback //出错回滚 else begin FDConnection1.Commit;   CommitUpdates; // 清除所有异动记录 Refresh; //更新数据 end; CachedUpdates := False; //关闭快储 end; end; end;
 Errors := ApplyUpdates(0);
参数为0时,表示不容忍任何错误,直接回滚
参数为-1时,表示尽量保存修改,更新完后再报错误.
比如你要更新十条数据,其中有五条会成功,五条会失败,此时如果你参数为0的话,程序就会直接放弃所有变更,也就是不更新了.如果参数为-1,则会更新五条,然后再告诉你有五条出错了

标签:begin,Errors,end,FireDAC,delphi,审核,PN,ApplyUpdates
From: https://www.cnblogs.com/yoooos/p/17106847.html

相关文章