procedure TForm10.Button6Click(Sender: TObject);
var
i:integer;
a,b,c,d:integer;
id: integer;
begin adoquery3.Close;
 
adoquery3.SQL.Clear;
 
adoquery3.SQL.Add('select * from xj order by tim,id');
 
adoquery3.Open;
adoquery3.First;for i:=0 to adoquery3.recordcount-1 dobegin
  adoquery3.Next;
  if not adoquery3.Eof then
      begin
       id := adoquery3.FieldByName('id').AsInteger;
       c:=adoquery3.FieldByName('sr').AsInteger;
       d:=adoquery3.fieldbyname('zc').AsInteger;
      end;
    adoquery3.Prior;  adoquery4.close;
 
  adoquery4.sql.clear;
 
  adoquery4.sql.add('update xj set ccje=:a,jc=:b where id=' + IntToStr(id));
  adoquery4.Parameters.ParamByName('a').Value:=adoquery3.FieldByName('jc').AsInteger;
 
  adoquery4.Parameters.ParamByName('b').Value:=adoquery3.FieldByName('jc').AsInteger +c-d;
  adoquery4.ExecSQL;  adoquery3.next;  end;
end;
                       為何

解决方案 »

  1.   

    procedure TForm10.Button6Click(Sender: TObject);
    var
    i:integer;
    a,b,c,d:integer;
    id: integer;
    begin adoquery3.Close;
     
    adoquery3.SQL.Clear;
     
    adoquery3.SQL.Add('select * from xj order by tim,id');
     
    adoquery3.Open;
    adoquery3.First;for i:=0 to adoquery3.recordcount-1 dobegin
           id := adoquery3.FieldByName('id').AsInteger;
           c:=adoquery3.FieldByName('sr').AsInteger;
           d:=adoquery3.fieldbyname('zc').AsInteger;
        adoquery4.close;
       adoquery4.sql.clear;
       adoquery4.sql.add('update xj set ccje=:a,jc=:b where id=' + IntToStr(id));
      adoquery4.Parameters.ParamByName('a').Value:=adoquery3.FieldByName('jc').AsInteger;
      adoquery4.Parameters.ParamByName('b').Value:=adoquery3.FieldByName('jc').AsInteger +c-d;
      adoquery4.ExecSQL;
      adoquery3.next;  end;
    end;
      

  2.   

    写的乱乱的感觉
    procedure TForm10.Button6Click(Sender: TObject);
    var
    i:integer;
    a,b,c,d:integer;
    id: integer;
    begin  adoquery3.Close;
      adoquery3.SQL.Clear; 
      adoquery3.SQL.Add('select * from xj order by tim,id');
      adoquery3.Open;
      adoquery3.First;  for i:=0 to adoquery3.recordcount-1 do
      begin
      if not adoquery3.Eof then
      begin
        id := adoquery3.FieldByName('id').AsInteger;
        c:=adoquery3.FieldByName('sr').AsInteger;
        d:=adoquery3.fieldbyname('zc').AsInteger;
      end;
      adoquery4.close;
      adoquery4.sql.clear;
      adoquery4.sql.add('update xj set ccje=:a,jc=:b where id=' + IntToStr(id));
      adoquery4.Parameters.ParamByName('a').Value:=adoquery3.FieldByName('jc').AsInteger; 
      adoquery4.Parameters.ParamByName('b').Value:=adoquery3.FieldByName('jc').AsInteger +c-d;
      adoquery4.ExecSQL;
      adoquery3.next;
      end;
    end;