既然你已经注册过了,那么要在把你的接口强制转换一下with DCOM1.AppServer as IYourAppServer do Login('011'+RightStr(trim(edtID.Text),5), trim(edtPSW.Text),'CS-MIS系统用户登录模块');
还有with DCOM1.AppServer as IYourAppServer do Login('011'+RightStr(trim(edtID.Text),5), trim(edtPSW.Text),'CS-MIS系统用户登录模块');中的IYourAppServer是不是我的服务器端的远程数据模块接口呢?客户端不可能有这个的呀?就是说一定会报错说IYourAppServer没有定义的。请细告,这个问题从我接手这个工程到现在还没有解决,有几个月了。
,在datamodule 里放一个 dcomconnection ,在通过dcomconnection 的appserver 调用你要的方法
就是这种方法呀
我觉得还是你的程序有问题,你再仔细检查检查,也许就能解决呢。
1. 在远程模块中或自己的建立的COM组件,增加方法时, 要在类型库中加, 不要自己直接加
2. 使用远程模块中组件的方法必须要CreateRemote,取得接口后,通过接口用,没问题的
你说的第一点我也不是很清楚,不过我加自己写的方法是在VIEW->的TYPE LIBRARY里加的。第二点我也不明白,我是一个三层的程序,我的服务器端己经在客户端注册过了还要CREAT什么呢?还有如何取的接口呢?我都有点晕!
pInterface:IEasyDCOMServer;
begin
pInterface := CoEasyDCOMServer.CreateRemote('MachineName')
pInterface. Method.
end;注意, 要包含RemoteDM_TLB文件.
pInterface := CoEasyDCOMServer.CreateRemote('MachineName')
你的呢?DCOM1.AppServer.方法
dcnnLogin.AppServer.Login 这两句都是你说的吧!DCOM1是什么是一个DCOMConnection组件的变量名吗? 那AppServer是什么?DCOMConnection组件里没有这个属性吧dcnnLogin是什么?你糊里糊涂地问,大家糊里糊涂地答!有什么效果呀,以后把你的问题描述清楚好不好?
好了,我们不说了,还是那个问题,我再说一下了,我是多层系统,就是在客户端调用的时候他报错,错误信息如下:第1行:‘.’附近有语法错误。就是指的dcnnLogin.AppServer.Login('011'+RightStr(trim(edtID.Text),5), trim(edtPSW.Text),'CS-MIS系统用户登录模块');这句,请指点是什么原因呢?
Login('011'+RightStr(trim(edtID.Text),5), trim(edtPSW.Text),'CS-MIS系统用户登录模块');
Login('011'+RightStr(trim(edtID.Text),5), trim(edtPSW.Text),'CS-MIS系统用户登录模块');中的IYourAppServer是不是我的服务器端的远程数据模块接口呢?客户端不可能有这个的呀?就是说一定会报错说IYourAppServer没有定义的。请细告,这个问题从我接手这个工程到现在还没有解决,有几个月了。