Midas中客户端TCLIENTSET动态指定一个TSTOREPROC的TDataSetprovide如何获得参数高手HELP,怎么没有人会呢? (200分)

  • 主题发起人 主题发起人 guchenyi
  • 开始时间 开始时间
G

guchenyi

Unregistered / Unconfirmed
GUEST, unregistred user!
问题详细是这样的:
TCLIENTDATASET连到中间件上一个Tdatasetprovider,而Tdatasetprovider连着一个TSTOREPROC上
我现在要在程序里面,动态的连上这个TSTOREPROC,然后
调用TCLIENTDATASET.FETCHPARAMS,就是得不到参数.
而在设计的时候,用右键点FETCHPARAMS也不行,必须先把ACTIVE设置成true,也不管它报错不报错.然后,再FETCH一把,就可以了.估计是TSTOREPROC不能获得参数..
请高手点播,到底如何能够动态指定一个TSTORPROC后,获得其参数,
而不是在设计的时候获得好.谢谢
 
高人去那里了?快来救命
 
首先
ADOStoredProc.Parameters.Refresh;
然后
Clientdataset.FETCHPARAMS;
 
客户端的TClientDataSet的FetchParams会触发对应的TDataSetProvider的BeforeGetParams
事件,所以可以在这里加入取参数的代码:
try
TStoredProc(TDataSetProvider(Sender).DataSet)).Prepare;//这里可能有异常但不影响正常取参数
except //跟后台数据库有关,如果你的系统没事,就可以去掉try...
on E: Exceptiondo
if Pos(网络出错的标识串,E.Message) then
raise;//重新抛出异常,即跟原来没try一样了
end;
OwnerData := PackageParams(TStoredProc(TDataSetProvider(Sender).DataSet)).Params);
返回后,在客户端的TClientDataSet就已经取得了存储过程的参数列表了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部