在调用存储过程insert一条记录的时候,在第一次插入记录的时候没有任何问题,退出插入记录的窗口,然后再进入插入记录的窗口,接着插入记录,也没有问题,问题出在如果在插入一条记录以后,不退出该插入记录的窗口,接着再插入另一条记录的时候就报错了。错误信息为:
Project MainPro.exe raised exception class EOleException with message 'Either BOF or EOF is True,or the current record has been deleted. Requested operation requires a current record'.
请问是何问题呀?请高手指点。

解决方案 »

  1.   

    这是因为没有打补丁。
    这个是著名的DELPHI5的ADO BUG,呵呵,BORLAND的网站上提供该补丁下载。
    我记得这是DELPHI5才有的BUG,6和7没有这个问题。
    ----------------------------------------
    赶快去下载补丁吧
      

  2.   

    首先打delphi补丁,然后在打ado补丁,快快快!
      

  3.   

    DELPHI7没有这个BUG的
    只有DELPHI5有ADO BUG,两个补丁是ftp://ftpc.inprise.com/pub/delphi/devsupport/updates/adoexpress/D5ADOUpgrade.exe

    ftp://ftpc.inprise.com/pub/delphi/devsupport/updates/adoexpress/d5adoupdate2.exe
    (仅用于D5)
      

  4.   

    差点忘了说,如果你的是D7,又是用DBExpress,那么打这个补丁:
    ftp://ftpd.borland.com/devsupport/delphi/d7/mssql/mssqlupdate.zip
      

  5.   

    按照SeaWave(NoSound)兄说的方法做了还是出现同样的现象,问题没有得到解决,我用的是企业版7的版本,下载了mssqlupdate.zip,并按照说明覆盖了原文件,重新启动delphi,运行程序后,现象没有发生任何改变。还有什么补丁需要打吗,请朋友指点。谢谢了!
      

  6.   

    急死人了,没有办法吗?
    我用的是ADOQUERY
      

  7.   

    這并不需要打什么補丁﹐錯誤信息中顯示BOF or EOF is  True,說明指針移到了記錄集的
    最末端﹐如果此時再插入﹐則指針移動發生越界﹐因此產生錯誤。我認為你可以在插入完
    記錄﹐將指針上移一下(如﹕adoquery.prior)﹐就可解決此問題。
      

  8.   

    這并不需要打什么補丁﹐錯誤信息中顯示BOF or EOF is  True,說明指針移到了記錄集的
    最末端﹐如果此時再插入﹐則指針移動發生越界﹐因此產生錯誤。我認為你可以在插入完
    記錄﹐將指針上移一下(如﹕adoquery.prior)﹐就可解決此問題。
    我赞同该兄的说法,你可以这样做吗?在每次要进行插入时,在执行插入的动作前面,先让
    表的指针指向第一个,例如:table1.first;那么在做插入操作的时候,系统自动就从表的头开始插入,像你所说的出现的错误,说明你在程序中用到了eof,其实,在做插入操作时,没有必要用EOF的,你自己试试
      

  9.   

    我可没有用到eof呀,我写了一个存储过程,用来插入记录,然后在程序中调用。不论是存储过程,还是程序中,都没有用到eof。不管怎么我先试试再说吧。