我在用ADO来访问SQLServer时,下面是我的代码qryTemp:=TADOQuery.Create(Nil);
strSQL:='select * from Operator where HotKey='+''''+strPas(pcValue)+'''';
OpenADOQuery(qryTemp,DBMS,strSQL);
strDocter:=qryTemp.FieldByName('Code').Asstring;
qryTemp.Close;
qryTemp.Destroy;重复到第二次qryTemp.CLose时报下面的错:
Either BOF or EOF is True,or the current record has been deleted.
Requested operation requires a current record.如何解决????

解决方案 »

  1.   

    DELPHI中ADO的著名BUG,
    去网上找个来升级吧
      

  2.   

    著名BUG???
    不知道D7有没有、、、
      

  3.   

    听他们说d5的ado 有这个‘bug’ d7不知道。我想应该没有。
      

  4.   

    声明:ado是微软的,不是宝蓝的,要下到微软下!宝蓝只是掉用了一下。
    Either BOF or EOF is True,or the current record has been deleted.
    Requested operation requires a current record.
    大体意思是:已经到了记录的最前或最后,或者操作的当前记录被删除了,我怀疑你在其它什么地方操作了数据库,而这里没更新造成的。
    至于bug的传说,我见识浅,没听说过。
      

  5.   

    bug?别什么东西都说是bug!看起来你也是个高手阿!一个星星了!出现这个错误的原因,是因为你的数据集为空!你可以确认一下,在你第二次的时候,你那个查询条件下的结果是不是空??????
      

  6.   

    x谢谢大家,我borland找到拉,
    http://info.borland.com/devsupport/delphi/mdac26.html
      

  7.   

    这个BUG在在D7和D6中已经没有了
      

  8.   

    这是微软与B的问题了,B以经解决了这个问题材如果你使用的是d6,d7就没有这个问题了,D5需要两个升级包,1、D5的升,2、ADO的升级
      

  9.   

    哈哈~~!
        这的的确是delphi5的一个“BUG”, 不然发布补丁干什么?!
        常见delphi5 的ADO补丁有三个,下载网址:
        http://mydelphi.8u8.com/update.htm
    同时有D6,D7的升级包,全免费!
      

  10.   

    qryTemp:=TADOQuery.Create(Nil);
    strSQL:='select * from Operator where HotKey='+''''+strPas(pcValue)+'''';
    OpenADOQuery(qryTemp,DBMS,strSQL);
    strDocter:=qryTemp.FieldByName('Code').Asstring;
    qryTemp.Close;去掉qryTemp.Destroy;试一下.或该为qryTemp.free;
      

  11.   

    1 Close前,调用一次First;
    2 http://expert.csdn.net/expert/FAQ/FAQ_Manage.asp?id=0&Topicid=1874617
      

  12.   

    qryTemp:=TADOQuery.Create(Nil);
    strSQL:='select * from Operator where HotKey='+''''+strPas(pcValue)+'''';
    OpenADOQuery(qryTemp,DBMS,strSQL);
    strDocter:=qryTemp.FieldByName('Code').Asstring;
    qryTemp.Close;去掉qryTemp.Destroy;试一下.或该为qryTemp.free;