用MTS/COM+开发分布式应用系统时,如何在MTS环境中由一个MTS组件创建另一个组件???(100分)

Z

zxtko

Unregistered / Unconfirmed
GUEST, unregistred user!
在学习李维的ADO/MTS/COM+时,第八章中开发存取数据的MTS/COM+组件时,按书上的程序
无法在MTS/COM+环境中创建MTS/COM+对象。
OleCheck(ObjectContext.CreateInstance(CLASS_guid,IID-interfaceid,object));
这个函数总是异常,无法创建。
环境:
在MTS环境中用一个MTS组件创建一个远程数据组件。
工具:Delphi 6.0
Windows 2000 SP2
 
不会,帮你踢一脚!
 
很奇怪,我也碰到过同样的问题,但是过了一段时间以后,重新编译,又通过了,奇怪,真的很奇怪
 
对不起,我也没什么好的意见,
我也刚看书的,呵呵.
 
没有实践经验,帮你提前!
 
>>工具:Delphi 6.0 Windows 2000 SP2
在Win2k中,对象组件的执行环境是COM+。而且win2k的SCM成为系统服务了,能够正确建立
普通的COM/DCOM组件和MTS/COM+组件。所以在COM+中可以统一使用CoCreateInstanceEx来
建立各种类型的对象,SCM会根据要建立的对象属性来决定如何创建它。
也就是说可以使用统一的方法,根据Type Library产生的Wrapper类型使用Create,CreateRemote
来建立MTS/COM+组件。而不必管是否在COM+环境中。
我是这样做的,不论客户端,还是在COM+组件中调用套间组件内的其他COM+组件,都是使用
Wrapper类别。如在套间组件内调用也这样
var
HandleObj: IcoDataHandleServer;
begin
try
HandleObj := CocoDataHandleServer.Create;
HandleObj.GetInfo(vInfo);
SetComplete;
except
SetAbort;
end;
end;
没有什么问题,当然你仍然使用IObjectContext接口的createInstance也可以。
不过推荐使用统一的方法。在Nt中需要使用后一种方法。
在李维的Ado/MTs/Com+中那本书讲到过的,是第五章中或者第六章中,记得不是很清楚了,你在仔细看看。
 
顶部