首先,例程中设置Clientdataset控件的fetchonmemand=true,packetrecord<>-1
这表示pooler例程使用了无状态对象分段存取数据的缓冲池技术.
由于中间件不负责维护客户端的Cursor,因此,程序员必须用代码实现从客户端传递下一个
数据封包的光标位置.以帮助应用服务器回传相应的数据封包,直到所有的查询数据全部
下载到客户端.
你在客户端应该注意clientdataset的onbeforegetrecord事件,在此事件中它捕捉了
本数据封包的最后的游标,然后它将(sql命令,游标)以olevariant数据包的形式传到应用
服务器.
在服务端,应该注意datasetprovider的onbeforegetrecord事件,它负责从缓冲池中
取出接口对象,并用数据操纵控件执行sql命令,然后根据传来的游标查找下一个记录的
游标位置.若查到传来的游标,则应用服务器把下一个数据包以olevariant的形式会传到
客户端.
该例程