DCOMConnection.AppServer

rill518 2003-05-09 08:52:14
為何 DCOMConnection.AppServer 不能使用呢?它不能獲得遠程數據模塊的接,更不能調用遠程數據模塊的方法。
它是動態聯編的,如果要想靜態聯編呢?怎麼辦??
...全文
54 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
riffleliu 2003-06-11
  • 打赏
  • 举报
回复
chechy(简简单单的活) 說得對,如果你不能解決問題,可以先到書讓看看李唯的那本分布式開發的。可能對你有用。
chechy 2003-05-14
  • 打赏
  • 举报
回复
我说得第二个问题就是导致你错误得原因。
2)DCOMConnection.Connected如果是True,DCOMConnection.AppServer.方法名不行,那么可能是这个Ole Automation Server不支持这个方法名,需要查看相关的帮助
rill518 2003-05-13
  • 打赏
  • 举报
回复
procedure TForm1.FormCreate(Sender: TObject);
var
I:Integer;
DBNames:OleVariant;
begin
DCOMConnection1.Connected :=true;
DBNames:= DCOMConnection1.AppServer.GetDatabaseNames;
if VarIsArray(DBNames) then
for I:=0 to VarArrayHighBound(DBNames,1) do
DatabaseName.Items.Add(DBNames[i]);
DatabaseNameClick(Self);
end;

執行到“DBNames:= DCOMConnection1.AppServer.GetDatabaseNames;”這句就會出錯!
ProjectProject1.exe raised exception class EOleError with message 'Method 'GetDatabaseNames' not supported by automation object'.Process stopped.Use Step or Run to continue.
888888888888 2003-05-11
  • 打赏
  • 举报
回复
关注
chechy 2003-05-11
  • 打赏
  • 举报
回复
1)DCOMConnection.Connected如果不是True,那么DCOMConnection.AppServer.方法名肯定不行。因为此时DCOMConnection.AppServer啥都不是。
2)DCOMConnection.Connected如果是True,DCOMConnection.AppServer.方法名不行,那么可能是这个Ole Automation Server不支持这个方法名,需要查看相关的帮助
rill518 2003-05-11
  • 打赏
  • 举报
回复
兄弟们,给点信心好不好啊!!
longlonger 2003-05-10
  • 打赏
  • 举报
回复
好像看看LiWei的书就可以了
microjuz 2003-05-10
  • 打赏
  • 举报
回复
蛇眼兄写的真是高深,~~学习学习
rill518 2003-05-09
  • 打赏
  • 举报
回复
我就是想調用中間層數據模塊的方法,應該是用DCOMConnection.AppServer.方法名就可以了,但實際用的時候卻不能用,何解!!!!
WangPeter 2003-05-09
  • 打赏
  • 举报
回复
“DCOMConnection.AppServer 不能使用”
怎么不能用?请详细描述。
snake_eye 2003-05-09
  • 打赏
  • 举报
回复
procedure TForm1.Button2Click(Sender: TObject);
var
vDatas : OleVariant;
ownerdata:olevariant;
BeginTime:Integer;
EndTime:Integer;
begin
BeginTime:=GetTickCount;
ownerdata := vararrayof([Clientdataset1.CommandText]);
vdatas := bObj.ApplyData(clientDataSet1.delta ,ownerdata);//CoM+方法!
EndTime:=GetTickCount;
Self.Caption:=FloatToStr((EndTime-BeginTime)/1000.0)+'秒';
end;
snake_eye 2003-05-09
  • 打赏
  • 举报
回复

private
{ Private declarations }
bObj : IDBPool;

..
bObj := CoDBPool.Create;
snake_eye 2003-05-09
  • 打赏
  • 举报
回复
怎么不能使用,不用也可以自己创建COM+对象一样!
chechy 2003-05-09
  • 打赏
  • 举报
回复
首先要DCOMConnection.Connected := True才行。
dolphin2001 2003-05-09
  • 打赏
  • 举报
回复
第一:
首先确认你的DComConnection相关连接属性(ServerName,ServerGuid)有没有设置正确,如果服务器和你的程序不在同一台机器上,你还需要在服务器端做相应的配置才行,至于如何配置,你可以查看一下以前的帖子;
第二:
你确认一下你的服务器是否存在你调用的方法,因为你是采用Variant的方式调用远程的方法,DELPHI在编译的时候它不会去检查你的方法是否存在,再者,就是你送的参数对不对。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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