unknown interfacce(300分)

  • 主题发起人 主题发起人 dsp
  • 开始时间 开始时间
D

dsp

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用MIDAS进行三层结构应用程序的开发时,
有的客户端程序会不定期地出现"unknown interface"错误,
然后,应用就不正常了,哪位大虾能解释一下原因?
如何解决?
我已经出了我能出的最大分!
 
你最好讲的详细一些, 至少用什么协议要说吧!
 
我在其他情况下遇到过,主要可能是用了QuickReport3,用Delphi4
从新编译并在客户端装BDE5.01后搞定。
 
感谢各位的解答,昨天没来,今天解释一下:
本人用OleEnterprise连结(DCom也有类似情况),
中间层在另一台机器上.
用Delphi4+pack2,数据库为Oracle.
To Taik: 要在客户端装BDE的话,用三层干吗?三层不是为了实现瘦客户端,
将数据库连结放到中间层来实现吗?
另: 中间层与客户端在一台机器上时,无此问题,移到局域网内的另一台机器上就有.
 
我只是猜想, 如果说错了别介意
你的客户端程序控件TOLEnterpriseConnection指定了
Computername了吗, 如果Computername为空, 则
默认为中间层在本机. (我只是从你的现象来分析的)
其实无论用那种协议连接, Server和Client不在同
一台机器上,则都应该指定Computername.
 
用ASTA控件.
 
to seasky:
Computername不设根本就来连不上,不存在我说的有时好,有时报错问题.
To chenke:
ASTA控件是啥呀?别告诉我是类似MIDAS的另一家第三方的三层控件.
我现在必须用MIDAS.
哪位大虾有高招?
 
OleEnterprise和DCom都需要TCP/IP.请检查你的TCP/IP的配置.
另外,请检查是否指定了DNS(最好不要用).
当然,从现象上看,该错误是由于从IUNKNOW转换到指定接口时出错,有可能
的问题是:连接出现问题,OLE出错(比如某个DLL),等...
要仔细判断,你表述的信息不够.如是连接从未连到连通时出错,还是连接一直
通着,调某个方法时出错;是否使用了多接口,APPSERVER是用什么建立的等等
 

我遇到过与你一样的问题.
原因是你在server程序设计时,没有export 输出接口。
你应该用鼠标点击provider或table,然后按右键export输出。
或者你在pas直接写. 最后重新编译。
因为你没有输出interface,所以你在运行client端程序时,老报unkown interface的错。
 
非也非也,这是接口未找到,不是接口中的属性未找到
 
我再次强调:估计你在是server端的remotedatamodule加了provider或table,但是你忘记要输出接口,所以在网络上,client端虽然找到server该dcom,但由于server没有输出interface,所以client不能与接口通讯,不能取数. 无独有偶,昨天晚上,与一个大学同学谈起,他最近也遇到同样问题。。。
请相信我,用右键或直接在pas的相应代码段function [TREMOTEDATAMODULE名].Get_[PROVIDER或table名]: IProvider;中加 result:=[provider或table].IPROVIDER;
 
to zjuhui:

感谢回答!
不过您似乎未看清我的问题,如果如您所说则每次调用必报接口未知,
但我的程序中是在调用同一方法时,有时运行正常,有时报接口未知.
However thank you!
希望有更贴切的答案.
 
多人接受答案了。
 
后退
顶部