丿昨天灬 发表于 2013-6-8 16:54:40

delphi查询修改函数

procedure Tform1.UpData(Sign:Smallint;Sql: array of String; cds: array of TClientDataSet;
var ReSign: Smallint; var ErrStr: String);
var
iMaxErrors,iErrorCount,i:Integer;
begin
try
try
    ADOConnection1.BeginTrans;
    iMaxErrors:=0;
    iErrorCount:=-1;
    ReSign:=1;
    for i:=0 to Length(Sql)-1 do
      begin
      if cds.ChangeCount>0 then
      begin
          ADOQuery1.Active:=False;
          ADOQuery1.SQL.Clear;
          ADOQuery1.SQL.Add(Sql);
          ADOQuery1.Open;
          DataSetProvider1.ApplyUpdates(cds.Delta,iMaxErrors,iErrorCount);
      if iErrorCount>0 then
          begin
          ReSign:=-1;
          ErrStr:='UIErrStr';
          exit;
          end;
      end;
      end;
except
    on E:Exception do
      begin
      ReSign:=-1;
      ErrStr:=E.Message;
      if Sign=0 then
      messagebox(Application.Handle,PChar(ErrStr),'提示',mb_ok+MB_ICONINFORMATION);
      end;
end;
finally
if ReSign<>1 then
    begin
    ReSign:=-1;
    ErrStr:='UIErrStr';
    ADOConnection1.RollbackTrans;
    if Sign=0 then
      messagebox(Application.Handle,PChar(ErrStr),'提示',mb_ok+MB_ICONINFORMATION);
    end
else
    begin
    ReSign:=1;
    ADOConnection1.CommitTrans;
    end;
end;
end;

新手请教!for循环里面不懂
页: [1]
查看完整版本: delphi查询修改函数