Midas连接出现的问题。(100分)

  • 主题发起人 arong2008
  • 开始时间
A

arong2008

Unregistered / Unconfirmed
GUEST, unregistred user!
我新建了一个类TPoolerMgr,继承TRemoteDataModule,实现IController接口(是新建远程数据模块产生的接口)
客户端用Socket连接远程数据模块没问题。连接我自已的类时产生如下错误:
提示窗标题栏:‘DAX Error’
提示内容:‘Resource TPoolerMgr not found’.
有哪位大侠能帮帮忙,解答一下。
 
怎么没人回答,各位进来了就留个话吧,比如是说的不明白,还是看不懂或者是没遇到过,还是太容易了。
 
继承TCustomDataModule和继承TCustomForm的类,都需要指定一个DFM文件的(在{$SR xxx.DFM}中)
如果你只是想建立一个类实现IAppserver接口和实现IControler接口,而且已经有一个远程
数据模块的话,根本不需要从TRemoteDataModule继承的,直接做一个TAutoObject类就可以了。
或者你可以在你的远程数据模块中,自己实现IControler接口。
做远程数据模块池的最好例子在/Source/Demos/Midas/Pooler中。
 
多谢szf兄,开始我也是从TAutoObject类继承,但那样的话,客户端只能用TDCOMConection连,因为用TDCOMConnection配置太麻烦了。
用TSocketConection连会出错。
提示窗标题栏:‘Error’
提示内容:‘Object not available{9F2566A8-60F7-4B89-B9E8-9A8A8FCCDD87}’
后面的{9F2566A8-60F7-4B89-B9E8-9A8A8FCCDD87}就是我新建的类的GUID.
请帮忙解答一下。
 
szf兄没来的吗?
好冷静!
 
不好意思,我没搞过SocketConnection,都是用DCOM的
它的配置其实很简单的呀!我以前的贴子有说过,不过忘了。
我看了一下ScktSrvr的源代码,可能要花一定的时间才会搞得通,但现在我没时间。
 
szf兄:
  我昨天有看过你以前的参与的贴子,好像有的贴说到DCOM和OS的版本有关,正好我的也是2K
Server版,而且我也从来没成功过,或许是OS有原因吧!
  看你以前参与的贴子回答都很棒,交个朋友吧!
我的QQ:109060625 EMail:arong2008@yahoo.com.cn
 
如果要解决那个"Resource not found"很简单。
你按照TPoolerMgr类的定义如
TPoolerMgr=class(TRemoteDataModule,IAppserver,IController)
Query1: TQuery;
Table1: TTable;
//关键在这里。
private
public
end;
生成一个一模一样的远程数据模块,注意:是生成的,不是你键入的。
然后保存下来,把文件名保存为xxx.Dfm,在{$SR *.dfm}下面加一句{$SR xxx.Dfm}
再试试
 
谢了,Resource not found在贴子刚发不久就已解决了。
只是下面这个弄不清楚:
用TSocketConection连接继承TAutoObject类会出错。
提示窗标题栏:‘Error’
提示内容:‘Object not available{9F2566A8-60F7-4B89-B9E8-9A8A8FCCDD87}’
后面的{9F2566A8-60F7-4B89-B9E8-9A8A8FCCDD87}就是我新建的类的GUID.
 
搞定了:在pooler单元
继承自动化对象类工厂,重载UpdateRegistry方法
TSupportSocketAutoObjectFactory = class(TAutoObjectFactory)
public
procedure UpdateRegistry(Register: Boolean);
override;
end;
procedure TSupportSocketAutoObjectFactory.UpdateRegistry(Register: Boolean);
begin
if Register then
begin
inherited UpdateRegistry(Register);
EnableSocketTransport(GUIDToString(CLASS_Pooler));
end else
begin
DisableSocketTransport(GUIDToString(CLASS_Pooler));
inherited UpdateRegistry(Register);
end;
end;
initialization
TSupportSocketAutoObjectFactory.Create(ComServer, TPooler, CLASS_Pooler, ciMultiInstance, tmFree);
//szf TAutoObjectFactory.Create(ComServer, TPooler, CLASS_Pooler, ciMultiInstance, tmFree);
end;
 
szf兄对COM是不是很精通,我也想学COM方面,看了一段时间,都是用C++讲的,看得的很
吃力,找李维的那本书没找到,也太贵了,公司里大家好像也都没用,只能一个人慢慢的摸索。
szf兄给点学COM的建议吧!
另外帮忙看一下下面的这个吧!谢了!
http://delphibbs.com/delphibbs/dispq.asp?lid=1409330
 
多人接受答案了。
 
顶部