出现  ‘getdatabasenames not supported by automation object’
本人利用的是TDCOMConnection进行的数据库服务器/客户端的访问操作
这是什么情况,希望知道的人帮忙下,谢谢@

解决方案 »

  1.   

    要得到所有数据库的列表
    RemoteServer.Connected:=true;
      DBNames:=Remoteserver.AppServer.Getserverlist;
      if VarIsArray(DBNames) then
       for I:=0 to VarArrayHighBound(DBNames,1) do
        DatabaseName.items.Add(DBNames[I]);
        DatabaseNameClick(Self);
      

  2.   

    哦哦,那个getserverlist原来是gerdatabasenames的,就是想试试getserverlist行不行,结果发现也是同样的问题
      

  3.   

    可能是我描述的有问题,我问另外一个问题吧:就是怎么在客户端的程序中,应用服务器端的远程模块中定义的过程或是函数?(使用的是TDCOMconnection连接方式),谢谢!
      

  4.   

    谢谢!
    ADOconnection我在TCP/IP中有用过,现在就是想问问我出现的是什么问题?
    还有我在编写客户端程序时,运行后发现在客户端的PAS文件里面不能识别在服务器端编写的FUNCTION,我编写的那个FUNCTION在服务器端没有错误这是客户端的程序
    procedure TForm1.FormCreate(Sender: TObject);
    var
      I:integer;
      DBNames:OleVariant;
    begin
      RemoteServer.Connected:=true;
      DBNames:=Remoteserver.AppServer.GetDatabaseNames;
      if VarIsArray(DBNames) then
       for I:=0 to VarArrayHighBound(DBNames,1) do
        DatabaseName.items.Add(DBNames[I]);
        DatabaseNameClick(Self);
    end;这是在服务器端编写的function(在远程模块示例中编写的)
    type
      TAdHocQueryDemo = class(TRemoteDataModule, IAdHocQueryDemo)
        Database1: TDatabase;
        AdHocQuery: TQuery;
        AdHocProvider: TDataSetProvider;
        Session1: TSession;
        procedure SetDatabaseNames(const DBName,Password:WideString);
        procedure RemoteDataModuleCreate(Sender: TObject);。function TAdHocQueryDemo.getDatabaseNames:OleVariant;
    var
      I:integer;
      DBNames:Tstrings;
    begin
      DBNames:=TStringList.Create;
      try
      session1.GetDatabaseNames(DBNames);
      Result:=VarArrayCreate([0,DBNames.count-1],varOleStr);
      for I:=0 to DBNames.Count-1 do
        Result[I]:=DBNames[I];
      finally
        DBNames.Free;
      end;
    end;
    希望知道的人解答,谢谢!