在三层数据库应用程序中,如何让多个TClientDataSet共用一个TDateSetProvider?(300分)

  • 主题发起人 主题发起人 徐凤华
  • 开始时间 开始时间

徐凤华

Unregistered / Unconfirmed
GUEST, unregistred user!
由于不知道客户端会打开多少个ClientDataSet,所以试图共享一个应用服务器端的
一个TDateSetProvider。但我试了一下未能成功,特向各位大侠请教,谢谢。
 
你动态地改变ClientDataSet的ProviderName属性的指向
它的ProviderName属性指向那个TDateSetProvider,就能使用那一个,
这样作到共用一个ClientDataSet。
但ClientDataSet不能同时指向多个TDateSetProvider。
这可是一个设计上的逻辑错误。
 
to 程云:
感谢关注,不过能否说的详细一点,我的水平太差,未能看懂。问题是这样,我准备
写一个程序,由于客户端可能会打开多个FORM,每个FORM上都有一个DbGrid显示数据库
中的数据。由于事先不知道有客户会打开多少个FORM,因此无法在应用服务器中设定
TDateSetProvider的数量。所以想在客户端动态创建TClientDataSet,并且多个
TClientDataSet共享一个应用服务器上的TDateSetProvider。不知道这种想法是否可行,
请指教。
 
可以呀!我一直都是这样用的呀!直接将CLIENTDATASET的Provider设置为服务器端的TDateSetProvider
即可
 
可以,不过你不要静态绑定,动态设置Provider的属性值,记着及时Close
 
楼上的几位大侠可以说的再明白一些吗?最好能有个例子,如果分不够的话,我还可以再
加,谢谢!
 
就是clientdataset连接provider呀,记得及时close即可.
不过最好不要这样做.
//看看李维的书还是有些用的.
 
我认为你不是技术的问题而已设计逻辑的问题!
最好把你的应用要求说清楚!
1、如果只是要求多个CLIENTDATASET共享DATASETPROVIDER,那很简单啊!
上面已经告诉你了,我就不多说了!
2、我没有明白你“由于客户端可能会打开多个FORM,每个FORM上都有一个DbGrid显示数据库
中的数据。由于事先不知道有客户会打开多少个FORM,”
什么意思!如果是设计期社顶好的,那你的FORM怎么会不确定呢!如果全是动态创建的(包括
FORM上的组件)我很想知道你想达到什么目的,所以我感觉你是逻辑上的错误!
继续关注!!
 
这个问题李颖大虾已经解决了。给你连接,自己看吧!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=226555
 
谢谢各位,我用RegisterProvider方法已经解决了该问题,发分庆祝。
 
不好意思,忘了发分了,今天上大富翁才想起来。请大家多多包涵!谢谢大家!
 
后退
顶部