while not ADOTable1.Eof do
      ADOTable1.edit;
  begin
      ADOTable1.FieldValues['kjqj']:=aa;
      ADOTable1.FieldValues['pzrq']:=edit3.text;
      ADOTable1.post;
      ADOTable1.next;
  end;
我没见过这样写的!!!!!
改成:
  while not ADOTable1.Eof do
  begin
      ADOTable1.edit;
      ADOTable1.FieldValues['kjqj']:=aa;
      ADOTable1.FieldValues['pzrq']:=edit3.text;
      ADOTable1.post;
      ADOTable1.next;
  end;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var aa:string;
    begin
      aa:=copy(edit3.text,1,6);
      ADOTable1.Open;
      ADOTable1.first;
      while not ADOTable1.Eof do
      begin
          ADOTable1.edit;
          ADOTable1.FieldValues['kjqj']:=aa;
          ADOTable1.FieldValues['pzrq']:=edit3.text;
          ADOTable1.post;
          ADOTable1.next;
      end;
      ShowMessage('更新成功!');
    end;
      

  2.   

    这样的有规律循环,用sql最方便
    其次用BatchUpdate
    而每次next后,post似乎不太好
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var aa:string;
    begin
      aa:=copy(edit3.text,1,6);
      ADOTable1.Open;
      ADOTable1.first;
      ADOTable1.edit;
      while not ADOTable1.Eof do
      begin
          ADOTable1.FieldValues['kjqj']:=aa;
          ADOTable1.FieldValues['pzrq']:=edit3.text;
          ADOTable1.next;
      end;
      ADOTable1.post;
      ShowMessage('更新成功!');
    end;
      

  4.   

    用:
    procedure TForm1.Button1Click(Sender: TObject);
    var aa:string;
    begin
      aa:=copy(edit3.text,1,6);
      ADOTable1.Open;
      ADOTable1.first;
      while not ADOTable1.Eof do
      begin
          ADOTable1.edit;
          ADOTable1.FieldValues['kjqj']:=aa;
          ADOTable1.FieldValues['pzrq']:=edit3.text;
          ADOTable1.post;
          ADOTable1.next;
      end;
      ShowMessage('更新成功!');
    end;后出错提示为:
    Violation   of Primary key constraint 表名一.
    Cannot insert duplicate key in object 表名二。 
      

  5.   

    Cannot insert duplicate key in object 表名二。  
    记录重复了!看下面代码可以得到提示:
    -------------------------------------
        ADOQ_temp.Close;
        ADOQ_temp.SQL.Clear;    ADOQ_temp.SQL.ADD('select * from T_CompInfo' +
                          ' where CCompCode=:CCompCode' +
                          ' and CYear=:CYear');
        ADOQ_temp.parameters[0].Value := aBag.AsString(0);
        ADOQ_temp.parameters[1].value := aBag.AsString(1);    ADOQ_temp.open;
        if ADOQ_temp.RecordCount = 0 then  //  <-----这里
          ADOQ_temp.Insert  //  <-----插入
        else
        begin
          ADOQ_temp.Edit;  //  <-----更新
        end;    ...
        ADOQ_temp.Post
      

  6.   

    你的错误是在adotable提交后数据库的指针已经不能
    在指向你需要的位置了
    解决方法我看前面应该有
      

  7.   

    TO 007pro(等你说爱我) :Ado我没用过,可是用bde为什么没有这么烦?????
      

  8.   

    TO MouseBrother() : 你说,应该如果解决?