我通过DCom来连接Appserver,在Appserver中有一个函数是用来调用
数据库的,函数名称为GetDataBaseNames,在客户端通过DCOMConnection.Appserver。GetDataBaseNames的方法来调用该函数时
出现如下的错误:Method'GetDataBaseNames'not supported by Automation object
请问这是什么原因?Appserver是可以启起来的。请高手解决,我的写法有问题吗?
请问该如何实现,最好给一些代码?谢谢!

解决方案 »

  1.   

    这个错误的原因是你的GetDataBaseNames没能正确定义。
    建议在类库编辑器中由他自动生成代码框架。
      

  2.   

    谢谢楼上各位,我正在想办法解决,
     由于很难登陆上CSDN,不方便与大家讨论。
    to ihihonline
     我已经在动网论坛中注册了帐号。
    并且Download一些文章,永远支持你。
    一个小小的请求:
       能在《多层技术》专栏中放一些关于客户端与AppServer端之间
    数据和函数相互调用的例子吗?(自私的要求)
       谢谢
      

  3.   

    用Type Library创建一个GetDB的方法,代码如下:function TMyDataServer.GetDB:OleVariant;
    var 
    I:Integer;
    DBN:TStrings;
    begin
    DBN:=TStringList.Create;
    try
      Session1.GetDatabaseNames(DBN);
      Result:=VarArrayCreate([0,DBN.Count-1],varOleStr);
      for I:=0 to DBN.Coutn-1 do
        Result[I]:=DBN[I];
     finally
        DBN.Free;
     end;
    end;
      

  4.   

    要通过调度接口IAppServer访问远程数据模块,心须在客户机数库应用程序中引用类型库编辑器生成的_TLB.pas,没引用这个文件就会导致你所说的问题!!!
      

  5.   

    谢谢:xwyaxp(阿雨) 
      试试先!
      

  6.   

    你的 GetDataBaseNames 方法怎么添加的?
    应该在 IDE 的 View|Type Library 中打开类型库文件,
    在AppServer的Ixxxx中添加一个 GetDataBaseNames 方法。DCOMConnection.Appserver.GetDataBaseNames 就没问题了