Delphi真的走下坡路了,没人能回答这些问题了----没人能帮我了吗 ( 积分: 100 )

  • 主题发起人 主题发起人 chinazxy2008
  • 开始时间 开始时间
C

chinazxy2008

Unregistered / Unconfirmed
GUEST, unregistred user!
大家新年好,开张问题:<br><br>我在服务端定义了一个方法,动态创建Provider供客户端调用:<br>function&nbsp;TTest.sFunIniProvider(Name:&nbsp;string):&nbsp;Boolean;<br>&nbsp;&nbsp;var&nbsp;testPro&nbsp;:&nbsp;TDataSetProvider;<br>&nbsp;&nbsp;testQr&nbsp;:&nbsp;TQuery;<br>begin<br>&nbsp;&nbsp;if&nbsp;FindComponent('dsp'+Name)&nbsp;=&nbsp;nil&nbsp;then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;FindComponent('qr'+Name)&nbsp;=&nbsp;nil&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testQr&nbsp;:=&nbsp;TQuery.Create(Self);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;:=&nbsp;false;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testQr.Name&nbsp;:=&nbsp;'qr'+Name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testQr.DatabaseName&nbsp;:=&nbsp;'hnjtBase';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testQr.SQL.Text&nbsp;:=&nbsp;Uppercase('select&nbsp;*&nbsp;from&nbsp;zxy_TestM');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testPro&nbsp;:=&nbsp;TDataSetProvider.Create(Self);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;:=&nbsp;false;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testPro.Name&nbsp;:=&nbsp;'dsp'+Name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testPro.DataSet&nbsp;:=&nbsp;testQr;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testPro.Exported&nbsp;&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;Result&nbsp;:=&nbsp;True;<br>end;<br><br>客户端调用:<br><br>procedure&nbsp;TForm1.btn2Click(Sender:&nbsp;TObject);<br>begin<br>&nbsp;&nbsp;if&nbsp;funIniProvider('testM')&nbsp;Then<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;cdsM.Active&nbsp;Then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cdsM.Close;<br>&nbsp;&nbsp;&nbsp;&nbsp;cdsM.ProviderName&nbsp;:=&nbsp;'dsp'+'testM';<br>&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cdsM.Active&nbsp;:=&nbsp;True;<br>&nbsp;&nbsp;&nbsp;&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Raise&nbsp;Exception.Create('连接服务器失败,请重新登录3!');<br>&nbsp;&nbsp;&nbsp;&nbsp;End;<br>&nbsp;&nbsp;end<br>&nbsp;&nbsp;Else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Raise&nbsp;Exception.Create('连接服务器失败,请重新登录2!');<br>end;<br><br>但报错:Provider&nbsp;not&nbsp;exported<br><br>请各位帮帮忙
 
在线等待,有人乐意帮忙吗?
 
这个问题很难吗?
 
高手们都到哪儿去了
 
设断点跟一下,看哪出的错
 
sFunIniProvider<br>funIniProvider();<br>相同吗??
 
不同啊,sFunIniProvider是服务端的方法,funIniProvider是客户端定义的调用服务端(sFunIniProvider)的方法
 
http://topic.csdn.net/t/20020429/21/690087.html<br>http://www.80diy.com/home/20010519/10/126354.html
 
看了上面的,问题依然存在
 
http://delphi.ktop.com.tw/board.php?cid=30&amp;fid=68&amp;tid=49538<br><br>这个问题的确生僻一些&nbsp;只是尽力帮你找找吧
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3248383
 
抱歉,没做过这方面应用,帮不上您的忙;<br>类似应用,我们采用webservice&nbsp;+&nbsp;客户端程序来实现;
 
怎么办哦[:)]
 
抱歉,没做过这方面应用,帮不上您的忙
 
不好意思!这方面我不懂,就帮你顶一下吧!
 
服务器端建立Provider后,还需要注册一下,即调用RegisterProvider<br>testPro&nbsp;:=&nbsp;TDataSetProvider.Create(Self);<br>RegisterProvider(testPro);
 
我在服务端定义了一个方法,动态创建Provider供客户端调用:<br>function&nbsp;TTest.sFunIniProvider(Name:&nbsp;string):&nbsp;Boolean;<br>&nbsp;&nbsp;var&nbsp;testPro&nbsp;:&nbsp;TDataSetProvider;<br><br>testPro在sFunIniProvider应该是一个局部变量,&nbsp;调用结束,&nbsp;它还有效吗?
 
TDataSetProvider.Create(这里传入的应该是远程数据模块对象);
 

Similar threads

后退
顶部