在程序中直接判断是否为EOF or BOF ,If Eof then ...
从而避免程序运行中发生错误.

解决方案 »

  1.   

    先判断是否是EOF或BOF,再执行代码。如 while not EOF do
       begin
         ……
       end
      

  2.   

    在读取修改删除记录之前进行判断:如下
    if not ADOQuery1.isEmpty then 
    begin
      //进行你的读取修改删除操作
    end;
      

  3.   

    老问题了,应该是ado方面的问题吧,建议升级到D6。
    搜索以前的贴子,应该可以找到答案。
      

  4.   

    对,先判断是否空,再判断是否是EOF或BOF
      

  5.   

    已经到了最后一条记录,还执行ADOQuery1.next,也会有这样的问题
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    99999999999B@B@B@BBBMMMM999999999999999999999999999
    999999999999M+:.:+9999M:999999999999999999999999999
    9999999999999MM9+99MMM:9999999999999999999999999999
    99999999999999M+.+99M:99999999999999999999999999999
    99999999999999B:.++9M:99999999999999999999999999999
    99999999999999B+.+99M:9999AAAAAA9999999999999999999
    99999999999999B:.++9M:9AAA++++:+AAA9999999999999999
    99999999999999B+.+99M:A+9+A:+++++9AA999999999999999
    99999999999999B:.++9:A+@+A:,:++9+A9@M99999999999999
    99999999999999B+.+9:A+A,,,,,,+A+A9@A@M9999999999999
    99999999999999B:.++A+A+,,.,,+A9A9@A@M@M999999999999
    99999999999999B+.+9AA+,,...,++A9@A@A@MM999999999999
    99999999999999B:.+:A+++,,.,,++9@A@A@M@M999999999999
    99999999999999B+.+A+@+,,,,,+9A@A+@@M@M@M99999999999
    99999999999999B:.+A@+++,+,+9A9A++@M@M@MM99999999999
    99999999999999B+.+A+@++++++A9A++9M@M@M@M99999999999
    99999999999999B:.+A@+@+:+9A9A9A9M@M@M@9M99999999999
    0A999999999999B+.+A+@+@+@+@+@A@A@9@9@9@M99999999999
    99999999999999B:.+A@+@+@+@+@+@A@M@9@9@9M99999999999
    99999999999999B+.+:A@+@+@+@+@A@M@9@9@9M999999999999
    99999999999999B:.+:A9@+@+@+@9@A@M@9@9@M999999999999
    99999999993333333333M9@9@9@9@9@M@9@9@9M999999999999
    99999999993.........MAA99@9@9@M@9@9@9M9999999999999
    99999999993...MMMM..MM@9@9@9@9@M@9@9M99999999999999
    99999999993....MMM..M:M@9@9@9@9@9@9M999999999999999
    99999999993...MMMM..M:9MMM@9@9@9MMM9999999999999999
    99999999993..MMM.M..M:9999MMMMMM9999999999999999999
    99999999993..MM.....M:99999999999999999999999999999
    99999999993..M......M:99999999999999999999999999999
    99999999993...M.....MM:9999999999999999999999999999
    99999999993.........M9M:999999999999999999999999999
    9999999999MMMMMMMMMMMMMM:99999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    99999999999999999999.9999999.9999999999999999999999
    9999999....999999999.9999999.99999.999999..99999999
    9999999.999.99999999.9999999.99999999999.9999999999
    9999999.9999.99...99.9....99....99.9999.99999999999
    9999999.9999.9.999.9.9.999.9.999.9.9999....99999999
    9999999.9999.9.....9.9.999.9.999.9.9999.999.9999999
    9999999.9999.9.99999.9.999.9.999.9.9999.999.9999999
    9999999.999.99.999.9.9.999.9.999.9.9999.999.9999999
    9999999....9999...99.9....99.999.9.99999...99999999
    9999999999999999999999.9999999999999999999999999999
    9999999999999999999999.9999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999999999999999999999
      

  6.   

    我碰到过。
    情况是:数据表为空时,我用了如下命令:
    adotable1.edit;
    adotable1.fieldbyname('aa').asstring:=edit1.text;
    adotable1.post;
    解决的方法是:
    with adotable1 do
      begin
        if recordcount>0 then
          begin
            edit;
            fieldbyname('aa').asstring:=edit1.text;
            post;
          end;
      end;
      

  7.   

    我也遇到过这样的问题,如果数据表为空,只要执行close,就会出错,真是烦!
      

  8.   

    同意  byc6352(雪原)  的说法。
      

  9.   

    如果是d5就马上打补丁吧!d6的话最好也打到pack2,
    照其他人的方法试试!