客户端从服务器中取得的记录数累计等于表中总记录数时发生错误(100分)

  • 主题发起人 主题发起人 狒狒
  • 开始时间 开始时间

狒狒

Unregistered / Unconfirmed
GUEST, unregistred user!
一个问题恳请各位帮帮忙,李维写的《Delphi 5.x 分布式多层应用 系统篇》中2-22页有个例子(2-1-4 使用命令动态存取远程数据)。先建立一个远程数据模块加入ADO连接后台数据库,ADOQuery,DataSetprovider,其中DataSetprovider的Options属性中poAllowCommandText属性置为True。接着建立客户端加入ScoketConnection连接远程数据模块,再加入ClientDataSet设置PacketRecords为10。执行SQL语句'select * from pubs'正常显示数据,当按DBNavigator的Last Record时,或者在最后一条记录按Next Record,或者数据库中没有显示的记录小于10条时出错。提示如下:Project Client.exe raised exception class EOLeException with message 'BOF 或 EOF 中有一个是"真",或着当前的记录已被删除,所需的操作要求一个当前的记录。我看是到达记录末尾使EOF为真产生的问题,我的看法是不是正确的?该怎样解决这个问题? 谢谢!!
 
恳请各位帮帮忙
 
先替你断句
一个问题恳请各位帮帮忙,李维写的《Delphi 5.x 分布式多层应用 系统篇》中2-22页有
个例子(2-1-4 使用命令动态存取远程数据)。先建立一个远程数据模块加入ADO连接后
台数据库,ADOQuery,DataSetprovider,其中DataSetprovider的Options属性中
poAllowCommandText属性置为True。接着建立客户端加入ScoketConnection连接远程数据
模块,再加入ClientDataSet设置PacketRecords为10。执行SQL语句
'select * from pubs'正常显示数据,当按DBNavigator的Last Record时,或者在最后一
条记录按Next Record,或者数据库中没有显示的记录小于10条时出错。提示如下:
Project Client.exe raised exception class EOLeException with message 'BOF 或
EOF 中有一个是"真",或着当前的记录已被删除,所需的操作要求一个当前的记录。我
看是到达记录末尾使EOF为真产生的问题,我的看法是不是正确的?该怎样解决这个问
题? 谢谢!!

 
没有出现类似情况啊。
 
装一个Delphi5的ADO升级包,或者用Delphi6。就不会有这种情况。
 
这是ADO的BUG
当ADOQUERY的返回记录数为0时关闭ADOQUERY就会报错
解决办法
安装Delphi5补丁1 -> 安装ADO补丁1 -> 安装ADO补丁2
 
多人接受答案了。
 
后退
顶部