最近在研究3层,但是在客户端程序调用时出现了个奇怪的问题,如果用SockerConnection就会出现“不支持该接口”的错误,但是换成DCOMConnection(去掉屏蔽了的那段代码)就可以成功调用,是什么原因啊?
代码如下:procedure TForm1.Button1Click(Sender: TObject);
var
imp :IEmpDB;
begin
SocketConnection1.address :=trim(Edit1.Text);
OleCheck(SocketConnection1.GetServer.QueryInterface(IID_IEmpDB,imp));
ClientDataSet2.Data :=(SocketConnection1.GetServer As IEmpDB).GetEmpData; {DCOMConnection1.ComputerName :=trim(Edit1.Text);
OleCheck(DCOMConnection1.GetServer.QueryInterface(IID_IEmpDB,imp));
ClientDataSet1.Data :=(DCOMConnection1.GetServer As IEmpDB).GetEmpData;}
end;
代码如下:procedure TForm1.Button1Click(Sender: TObject);
var
imp :IEmpDB;
begin
SocketConnection1.address :=trim(Edit1.Text);
OleCheck(SocketConnection1.GetServer.QueryInterface(IID_IEmpDB,imp));
ClientDataSet2.Data :=(SocketConnection1.GetServer As IEmpDB).GetEmpData; {DCOMConnection1.ComputerName :=trim(Edit1.Text);
OleCheck(DCOMConnection1.GetServer.QueryInterface(IID_IEmpDB,imp));
ClientDataSet1.Data :=(DCOMConnection1.GetServer As IEmpDB).GetEmpData;}
end;
解决方案 »
- 请问怎么联系(Comanche/太可怕)这位朋友?
- 一个很简单的问题
- 如何将BYTE型的数组转成String型
- 有几天要不能来csdn了,辞了烂工作,去找陪女朋友,顺便找新的工作。放分!
- 求关于 DBgridEH3 控件 的下位选择功能的设置 ??????????????????????????????
- 请问我发一个 100 分的帖子,但没人能解决,我册不了,这 100 分如何处理?
- 怎么判断NoteBook某一Page上的控件的数目?
- delphi FormCloseQuery
- 调用netapi32.dll 会报错不知何原因?如能回答本人将非常感激!
- 请问怎样把下载的控件加入到DELPHI 5里??
- 用什么样的桌面数据库最好?
- 关于ListBox1的问题 高难度!!!!!!!!!!!有人会吗
OleCheck是COM所用的,非Socket用的吧.
SocketConnection
不支持对远程对象QueryInterface.
在很多文档资源与书上都说到过..不相信你自己可以看TSocketConnection的源码,嘿嘿