哪里能找到delphi自带例程的详细说明(50分)

  • 主题发起人 主题发起人 heifei
  • 开始时间 开始时间
H

heifei

Unregistered / Unconfirmed
GUEST, unregistred user!
我看了demo/midas/pooler里的例子,看了李维对这个例子运作原理的讲解
但不知道详细工作流程,也不知道自己怎样写建立这种利用连接池工作的程序
 
谁能告诉我基本步骤么?
 
高手在吗?帮帮忙吧
 
帮帮忙吧
 
这么肯定?!
 
首先,例程中设置Clientdataset控件的fetchonmemand=true,packetrecord<>-1
这表示pooler例程使用了无状态对象分段存取数据的缓冲池技术.
由于中间件不负责维护客户端的Cursor,因此,程序员必须用代码实现从客户端传递下一个
数据封包的光标位置.以帮助应用服务器回传相应的数据封包,直到所有的查询数据全部
下载到客户端.
你在客户端应该注意clientdataset的onbeforegetrecord事件,在此事件中它捕捉了
本数据封包的最后的游标,然后它将(sql命令,游标)以olevariant数据包的形式传到应用
服务器.
在服务端,应该注意datasetprovider的onbeforegetrecord事件,它负责从缓冲池中
取出接口对象,并用数据操纵控件执行sql命令,然后根据传来的游标查找下一个记录的
游标位置.若查到传来的游标,则应用服务器把下一个数据包以olevariant的形式会传到
客户端.

该例程
 
如果你想使用object pooling 技术,pooler例程中的大部分代码可以借用,只需设置你的
sql叙述和要维护的字段名,然后将(sql命令,游标)以olevariant数据包的形式传到应用
服务器即可
 
to shsshashssha:
从代码来看,clientdataset和datasetprovider是要维护游标,
但没有任何地方看出如何从缓冲池取得连接呀
 
取接口的工作,delphi5已经帮你做了,delphi4才要自己写代码取接口.
 
解释:fetchonmemand属性负责控制缓冲池技术.
应用服务器在delphi5默认为无状态对象, Clientdataset控件的fetchonmemand=true,
相应的datasetprovider(接口)自动成为一个状态对象,Clientdataset控件的
fetchonmemand=false,packetrecord<>-1,相应的datasetprovider(接口)自动成为
一个无状态对象(缓冲池必需).
因此,使用Clientdataset时,只要进行相应设置,则Clientdataset所连接的
datasetprovider就会自动按缓冲池技术重用接口对象,
 
接受答案了.
 
后退
顶部