DCOM调用远程数据模块的自定义方法的问题。

OhioLau 2004-07-27 02:38:51
我的DCOM连接到了远程的模块里的一个方法,但是我如何调用远程模块的这个方法呢?
DCOM1.AppServer.方法 可以调用吗?我调用的时候老是在些处报错,说'.'处有错误,到底是怎么回事呢?
...全文
267 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
mc1105 2004-09-07
  • 打赏
  • 举报
回复
学习!寒!
OhioLau 2004-08-10
  • 打赏
  • 举报
回复
可系统老报错,说我的在cDM.dcnn.appServer.Login(edtUser,edtPwd,'登录模块')处,还有'.'有问题,别的处没有点了,只是在APPSERVER后的点时,很可能是在这个地方,救我呀!
neo40 2004-08-09
  • 打赏
  • 举报
回复
DCOM1.AppServer.functionName(参数1,参数2);是可以调用的。
SaKura2003 2004-08-08
  • 打赏
  • 举报
回复
up
OhioLau 2004-08-06
  • 打赏
  • 举报
回复
各位帮一下忙呀,我不能不结贴呀!
IFindit 2004-07-30
  • 打赏
  • 举报
回复
dcnnLogin这个是接口吗? 如果是在哪创建的? 我的接口是这样来的
pInterface := CoEasyDCOMServer.CreateRemote('MachineName')
你的呢?

DCOM1.AppServer.方法
dcnnLogin.AppServer.Login 这两句都是你说的吧!DCOM1是什么是一个DCOMConnection组件的变量名吗? 那AppServer是什么?DCOMConnection组件里没有这个属性吧dcnnLogin是什么?

你糊里糊涂地问,大家糊里糊涂地答!有什么效果呀,以后把你的问题描述清楚好不好?
OhioLau 2004-07-30
  • 打赏
  • 举报
回复
TO:回复人: IFindit(寻找其中的乐趣),你所说的和我的也是一样的,我只不过是在客户端注册,并且我现在也己经注册了。你用的方法与我的dcnnLogin.AppServer.Login('011'+RightStr(trim(edtID.Text),5), trim(edtPSW.Text),'CS-MIS系统用户登录模块');这个有什么不同呢?不明白?????
OhioLau 2004-07-30
  • 打赏
  • 举报
回复
还有with DCOM1.AppServer as IYourAppServer do
Login('011'+RightStr(trim(edtID.Text),5), trim(edtPSW.Text),'CS-MIS系统用户登录模块');中的IYourAppServer是不是我的服务器端的远程数据模块接口呢?客户端不可能有这个的呀?就是说一定会报错说IYourAppServer没有定义的。请细告,这个问题从我接手这个工程到现在还没有解决,有几个月了。
OhioLau 2004-07-30
  • 打赏
  • 举报
回复
早榜定还是晚榜定呀
是什么意思,我是个新手?
IFindit 2004-07-30
  • 打赏
  • 举报
回复
既然你已经注册过了,那么要在把你的接口强制转换一下

with DCOM1.AppServer as IYourAppServer do
Login('011'+RightStr(trim(edtID.Text),5), trim(edtPSW.Text),'CS-MIS系统用户登录模块');
IFindit 2004-07-30
  • 打赏
  • 举报
回复
我明白你的问题了,你是想通过connection组件中的appserver属性来访问其中应用服务器中自己的login方法了,哦,明白了,那你是用的早榜定还是晚榜定呀?
OhioLau 2004-07-30
  • 打赏
  • 举报
回复
不是吧,楼上的,我好像没有怎么得罪你呀?不致于吧!我好像说过我是一个分层的系统呀?DCOM1.AppServer.方法和我说的dcnnLogin.AppServer.Login有什么区别吗?我不认为呀?如果你做过多层系统的时候,AppServer你应该知道的吧?我的第一种说法没有什么矛盾吧!我都说了是调用远程数据模块的自定义的方法啦,是你糊涂的,不是吗?
 好了,我们不说了,还是那个问题,我再说一下了,我是多层系统,就是在客户端调用的时候他报错,错误信息如下:第1行:‘.’附近有语法错误。就是指的dcnnLogin.AppServer.Login('011'+RightStr(trim(edtID.Text),5), trim(edtPSW.Text),'CS-MIS系统用户登录模块');这句,请指点是什么原因呢?
IFindit 2004-07-29
  • 打赏
  • 举报
回复
你说的DCOM是不是自己的一个DCOM组件,还是DCOMConnection组件啊, 说实在我不明白的问题!

提示两点:
1. 在远程模块中或自己的建立的COM组件,增加方法时, 要在类型库中加, 不要自己直接加
2. 使用远程模块中组件的方法必须要CreateRemote,取得接口后,通过接口用,没问题的
zdq801104 2004-07-29
  • 打赏
  • 举报
回复
检查一下你的SQL语句吧,可能有错呢
zdq801104 2004-07-29
  • 打赏
  • 举报
回复
是不是DCOM注册问题?再不行的话干脆用Sockconnect吧,连注册都省了

supertcl 2004-07-29
  • 打赏
  • 举报
回复
DCOM 单元中加个 datamodule ,在datamodule 里放一个 dcomconnection ,在通过dcomconnection 的appserver 调用你要的方法.
就是这种方法呀
我觉得还是你的程序有问题,你再仔细检查检查,也许就能解决呢。
IFindit 2004-07-29
  • 打赏
  • 举报
回复
记住CoEasyDCOMServer这个类为远程数据模块(其实它是COM组件,自己定义时也是一样)提供了两个函数用来创建本地或远程模块的接口,有了接口就如鱼得水了,结账吧,老大!
IFindit 2004-07-29
  • 打赏
  • 举报
回复
在你要用这个方法的时候:

Var
pInterface:IEasyDCOMServer;
begin
pInterface := CoEasyDCOMServer.CreateRemote('MachineName')
pInterface. Method.
end;

注意, 要包含RemoteDM_TLB文件.
OhioLau 2004-07-29
  • 打赏
  • 举报
回复
楼上的实在不好意思。DCOM是一个DCOMConnection组件。
你说的第一点我也不是很清楚,不过我加自己写的方法是在VIEW->的TYPE LIBRARY里加的。第二点我也不明白,我是一个三层的程序,我的服务器端己经在客户端注册过了还要CREAT什么呢?还有如何取的接口呢?我都有点晕!


podianliangshui 2004-07-28
  • 打赏
  • 举报
回复
就是这种方法
加载更多回复(3)

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧