声明
procedure QueryDetail(Index, EmpID: OleVariant); safecall;procedure TRLZY_RDM.QueryDetail(Index, EmpID: OleVariant);
begin
  case Index of
    1:
      with ADOQ_Resume do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select * from Resume where EmpID = :EmpID');
        Parameters.ParamByName('EmpID').Value
          := EmpID;
        Open;
      end;
    2:
      ...
    3:
      ...
end;提示错误: Method "QueryDetail" not supported automation object

解决方案 »

  1.   

    需要打开VIEW|Type Library,然后再其中添加QueryDetail方法,这样就可以了。
      

  2.   

    to:chechy(简简单单的活)
    我按照你的方法,没提示错误.但传参数到服务器没有把数据返回到客户端,能不能再回答我这个问题?谢谢!
      

  3.   

    返回客户端,需要把参数标记为out,否则不会传递回来的。
      

  4.   

    1.动态调用
       //调用应用服务器上定义的接口,检查用户名称和密码
       if sktconnect.appserver.CheckName('chen','12345') then
          edit1.text:='it is ok'
       else
          edit1.text:='it is error'; 
     2.静态调用
       首先,在应用服务器上注册com组件,必要情况下运行ScktSrvr.exe
       其次,在客户端注册com组件,然后客户应用程序就可以方便的调用com应用程序
    注意1:如果用dcom或corba作为通信协议连接应用服务器,最后采用静态编联方式来访问
          远程数据模块的接口,方法是用特定的接口类型对appserve属性进行强制类型转换。
          假设远程数据模块的接口叫IMyAppServer
          如:
           dcom方式调用:
                with MyConnection.AppServer as IMyAppServer Do 
                     Value:=CheckName('chen','12345');
           corba方式调用:
                with IUnknown(MyConnection.AppServer) as IMyAppServer Do
                     Value:=CheckName('chen','12345');
    注意2:对于dcom方式来说,要使用静态联编方式调用远程数据模块的接口,
               她的类型库必须在客户端注册。
           对于corba方式来说,要使用静态联编方式调用远程数据模块的接口,
               必须在客户端引用类型库编辑器生成的_TLB.pas文件。
      

  5.   

    你应该先在类型库定义QueryDetail
    然后刷新一下,在单元文件中出现的过程中写代码.