用adoquery查询,结果为0时,即找不到记录时,会出错,是怎么回事,会找到记录时不会错,程序如下:
win2000,delphi5,mssql 2000数据库,  Querystr:='select * from sjdn where 司机姓名='''+'小吴'+'''';
  ADOQuery1.close;
  ADOQuery1.SQL.Clear ;
  ADOQuery1.SQL.Add(Querystr);
  ADOQuery1.open;
找不到记录第一次运行不会错,再运行一次,就报错,"eof or bof..."
是什么原因,程序要怎么写代码??解决马上给分.

解决方案 »

  1.   

    提示出错,either bof or fof is true,or the current record has been deleted requested operation  requires a current record.我没进行其它操作,只是点两下按纽,即执行Querystr:='select * from sjdn where 司机姓名='''+'小吴'+'''';
      ADOQuery1.close;
      ADOQuery1.SQL.Clear ;
      ADOQuery1.SQL.Add(Querystr);
      ADOQuery1.open;
    两次,第一次不会出错,第二次出错,如果有找到记录也不会出错。
      

  2.   

    检查 ADOQuery1 的各个事件中有什么代码
    检查与 ADOQuery1 关联的组件的各个事件有什么代码
      

  3.   

    如果这个错误出现是在你打包之前的执行时的话,是很正常的。你不妨编译成可执行文件后,执行可执行文件看看是否还出现类似错误,如果有可能就是你其他的程序有错误。DELPHI 在编译过程中的出错有时只是一个提示作用,当执行可执行文件时就没有出错了。
      

  4.   

    这段代码是没有问题,你可以看一下与ADOQuery相连的和它本身有没有事件里面出现了错误
      

  5.   

    ado存在bof eof的问题,升级delphi的ado驱动就行了
      

  6.   

    Ado 补丁怎么打,在哪里可以下载呀??
      

  7.   

    打上Ado 补丁后还是不能用,是不是delphi5对ado不支持呀,
      

  8.   

    Open后再加一句
    if AdoQuery1.IsEmpty then
    ....
    else
    ...
      

  9.   

    没注意你是用的D5
    下一个新版的mdac_typ试试