出现 Method'log'not supported by automation object.
怎么解决

解决方案 »

  1.   

    客户端
    main.con.AppServer.log(vyh,vmm,vlogin); //这里出错服务端protected
      procedure log(yh,mm:Olevariant; var yn:Olevariant);safecall;
    ...
    procedure Tdb.log(yh,mm:Olevariant; var yn:Olevariant);
    var
      sqlstring:string;
    begin
      yn:=true;
      with one do
      begin
        Close;
        sqlString := 'select 用户编号,用户组号 from wz_qxgl_yhsz where 用户别名='+ '''' + yh + ''' and ';
        sqlString := sqlString + ' 用户密码=' + '''' + mm + '''';
        Sql.Clear;
        sql.add(sqlString);
        try
          Open;
        except
          yn:=false;
          exit;
        end;
        if RecordCount=0 then
        begin
          yn:=false;
          exit;
        end;
      end;
    end;
      

  2.   

    自动化目标不支持log方法,字面是这样;可能你引用的自动化对象没有log方法而你加进去了
      

  3.   

    搂主可能是按例子手动输入的源代码,你的程序本身没有问题,问题是你少了在IAppServer中加入相应的定义。
    你可以在远程数据模块中的接口单元中加入以下代码:
       interface IDemoServer: IAppServer
      {
        [
        id(0x00000001)
        ]
        HRESULT _stdcall log([in] VARIANT yh, [in] VARIANT mm, [in, out] VARIANT * yn );
      };其中IDemoServer是你应用服务器接口名。
    当然,你也可以从View -----> Type Library 打开的窗口中找到以I开头,以你应用服务器名命名的接口中新建Method log 在Parameters中加入参数,在数据模块单元中copy你以上代码即可。