在客户端如何动态改变TProvider的DataSet(100分)

  • 主题发起人 主题发起人 小天
  • 开始时间 开始时间

小天

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个三层系统,在Server端有几十个TTable,仅想用一个TProvider连,
那有没有办法在Client端的程序中动态改变TProvider的DataSet指向呢?
 
好象能行。因为刚学,听听他人的见解!
>>
 
直接修改DataSet字段就可以了呀.
另外, 为什么不用TDataSetProvider呢?
 
呵呵, 还是用tquery+clientdataset.iprovider.datarequest+iprovider.ondatarequest
代替吧, 不知道datarequest怎么用看看以前的回答.
 
datarequest也不是万能的。这种情况也是有可能的如果只想用一个Privoder
也简单在服务器端加一个函数如SetProvider之类的函数,在这个函数中改变
DataSet值就可以了。
 
???怎么用的呢?
 
1。你写一个在服务器中 的方法,根据客户端传来的参数去chang
DataSetProvider的dataset,再open clientdataset.
2.你为什么要放那么多的table呢,用一个query就可以了,在客户端用
clientdataset.datarequest去取数。不过,用query的时候取数快,但提交
有点慢。
你用provider吗?改成datasetprovider吧,d5中已没有provider这个控件了。
 
很简单,在服务器端的Type Library中声明如下:
HRESULT _stdcall SetProvider([in] int Value );
在此函数中通过判断Value的值来给Provider赋相应的DataSet如
Value=1时DataSet为Table1,Value=2........
在客户端调用时先关闭ClientDataSet
通过DCOMConnection1.AppServer.SetProvider(i);
来选择相应的DataSet
然后打开ClientDataSet.
 
我想小天可能用到后台查询之类的多线程要同时对几个表有不同的操作吧,
要不用Query应简单多了。
 
datasetprovider怎么用的呢?
 
和TProvider一样
 
多人接受答案了。
 
后退
顶部