巴
巴蒂斯图塔
Unregistered / Unconfirmed
GUEST, unregistred user!
根据三层结构的建模方式,为了能重复使用,在Data Services先根据各实体
来建立EO,我的理解就是建立一个MTS DataModule组件,在该组件里通过
在Type Liabary里建立多个Method,如Add(),Delete().....等,
在Business Services建立BO时,只是分别调用EO里面的功能,
我的理解是建立一个MTS Object 组件,在组件里再通过Uses
TLB文件的方式,用类似于
try
if Assigned(ObjectContext) then
begin
OleCheck(ObjectContext.CreateInstance(CLASS_Co_GrpUser,
IID_ICo_GrpUser, IMtsrvo));
//生成EO的实例
Result:=IMtsrvo.UpGrpUser(Delta,MaxErrors,ErrorCount);
//调用Eo的方法
end;
ObjectContext.SetComplete;
except
ObjectContext.SetAbort;
end;
的方式来调用EO的方法
但在建立客户端应用程序时,发现SocketConnect里只能显示EO的服务名,
不能显示BO的服务名,所以只能通过以下的方式来调用BO的服务
var
iRecord:Integer;
IMtso:IcoBus_cx;
begin
try
IMtso:=CocoBus_cx.CreateRemote('R-d-server');
If ClientDataSet1.ChangeCount>0 then
IMtso.UpGrpUser(ClientDataSet1.Delta,0,iRecord);
IMTSo:=nil;
end;
end;
在本机上运行时正常,在别的机器上时先要用RegSrv32先对该DLL注册,否则会
弹出"Interface not Support"的错误信息。
请问这种建立MTS程序的方式是否正确?这种必须先在客户端注册服务程序的方式如果使用
了多个DLL维护量很大,是否有更好的方式?请各位老大不吝指教
来建立EO,我的理解就是建立一个MTS DataModule组件,在该组件里通过
在Type Liabary里建立多个Method,如Add(),Delete().....等,
在Business Services建立BO时,只是分别调用EO里面的功能,
我的理解是建立一个MTS Object 组件,在组件里再通过Uses
TLB文件的方式,用类似于
try
if Assigned(ObjectContext) then
begin
OleCheck(ObjectContext.CreateInstance(CLASS_Co_GrpUser,
IID_ICo_GrpUser, IMtsrvo));
//生成EO的实例
Result:=IMtsrvo.UpGrpUser(Delta,MaxErrors,ErrorCount);
//调用Eo的方法
end;
ObjectContext.SetComplete;
except
ObjectContext.SetAbort;
end;
的方式来调用EO的方法
但在建立客户端应用程序时,发现SocketConnect里只能显示EO的服务名,
不能显示BO的服务名,所以只能通过以下的方式来调用BO的服务
var
iRecord:Integer;
IMtso:IcoBus_cx;
begin
try
IMtso:=CocoBus_cx.CreateRemote('R-d-server');
If ClientDataSet1.ChangeCount>0 then
IMtso.UpGrpUser(ClientDataSet1.Delta,0,iRecord);
IMTSo:=nil;
end;
end;
在本机上运行时正常,在别的机器上时先要用RegSrv32先对该DLL注册,否则会
弹出"Interface not Support"的错误信息。
请问这种建立MTS程序的方式是否正确?这种必须先在客户端注册服务程序的方式如果使用
了多个DLL维护量很大,是否有更好的方式?请各位老大不吝指教