ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select * from weituo where status = ''R''');
  try
    ADOQuery1.Open;
  except
    ...
  end;
//以上代码没有出错
  ...
//再执行语句
  ADOQuery1.Close;
  在没有符合条件的记录时,会提示“..."BOF或EOF中有一个是"真",或者当前的记录已被删除,所需的操作要求有一个当前的记录。...”;
  记得使用TQuery控件时没有此问题,这是为什么?

解决方案 »

  1.   

    补充说明:
    ...
    其实并没有省略什么其它语句,其实
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('select * from weituo where status = ''R''');
      ADOQuery1.Open;  
    然后再随便添加一个按钮,添加下面这条语句
      ADOQuery1.Close;
    程序运行后点击这个按钮就会报错了。
      

  2.   

    问题应该出在你的按钮事件click上吧
      

  3.   

    真的没人能解决么?
    说明一下,是Delphi5,操作系统Win2k professional,操作的是Foxpro2.5 的DBF。
      

  4.   

    if assigned(ADOQuery1) then
        ADOQuery1.Close;
      

  5.   

    再试一试
      if assigned(ADOQuery1) and (ADOQuery1.Active ) then
        ADOQuery1.Close;
      

  6.   

    算了,我已经自己解决了。只要在关闭之前,先
      adoquery1.First;
      adoquery1.Close;
    这样就不会报错了。