运行下列代码的时候运行到->处报错:“EOF或者BOF为真,或者当前记录已经删除。所需的操作要求一个当前的记录。”adoquery1有时候是空的,但没有空记录,以前运行都没问题,突然间就出现了这个问题?该怎么解决?
begin
   Adoquery1.active:=True;
   Adoquery1.close;
   Adoquery1.sql.clear;
   Adoquery1.sql.add('select * from temp');
   Adoquery1.sql.add('where  ifsend= "N"');
   Adoquery1.open;
   Adoquery1.first;
-> while not Adoquery1.eof do begin
   try
        Table1.Insert;
        Table1.Post;
        AdoQuery1.delete;
   except
        Adoquery1.next;
   end;
   end;

解决方案 »

  1.   

    好象要加一句
    adoquery1.execsql
      

  2.   

    属于FAQ:
    访问我的主页就有答案了,给分!:)
    http://www.ifrance.com/man8888/FAQs_ADO.htm
    我爱Delphi!
      

  3.   

    还是一样报那个错误,再问open和execsql应该差不多吧?
      

  4.   

    begin
       Adoquery1.active:=True;
       Adoquery1.close;
       Adoquery1.sql.clear;
       Adoquery1.sql.add('select * from temp');
       Adoquery1.sql.add('where  ifsend= "N"');
       Adoquery1.open;
       Adoquery1.first;
    -> while not Adoquery1.eof do begin
         try
            Table1.Insert;
            Table1.Post;
            AdoQuery1.delete;
    ->   finally
            Adoquery1.next;
         end;
       end;
    end;
      

  5.   

    Delphi 5 ADO著名的bug,查找一下以前的帖子吧
      

  6.   

    用finally也一样报那个错误啊。
      

  7.   

    需要安装d5的ado补丁
    riff ur life