关于分布式多层应用(200分)

  • 主题发起人 主题发起人 lollman
  • 开始时间 开始时间
L

lollman

Unregistered / Unconfirmed
GUEST, unregistred user!
按照李维分布式多层应用系统篇里面第2章,在命令动态存取远程数据的程序当中,如果检
索的数据太多,就会出现下面的错误提示
[IBM][CLI Driver] CLI0165E 行错误。SQLSTATE=01S01.
我已将PacketRecord设为30,但是没有起到作用,为什么?
接着我将应用服务器中,ADOQuery1.MaxRecords设为30,这样到是没有出错了,但是检索
出来的数据又只有30条,如果继续访问其余的数据呢?
大家帮帮忙
 
继续往后看![:)]
 

将PacketRecord设为30和将应用服务器中ADOQuery1.MaxRecords设为30,这两种情况表现出来的效果是一样的。
即检索出来的数据都只有30条。
但是不能将应用服务器中ADOQuery1.MaxRecords设为30,这样总也访问不到其余的数据。
正确的方法是:
将PacketRecord设为30,将FatchOnDemand设为True,当访问到数据结尾或想访问其余数据时,先保存当前数据的位置,
再调用TClientDataSet.GetNextPacket来取得下一个30条数据,具体实现在李维分布式多层应用系统篇里面第5章第5页
至11页有详细说明。
 
你应该在分布多层中使用无状态对象。
楼上兄弟说要把FatchOnDemand设为True,我觉得按照李维的“鱼与熊掌兼得之”中的
观点,应该设为False,然后结合代码使用Clientdataset的GetNextPacker来获取数据。
 
多人接受答案了。
 
后退
顶部