edit2.Text:=DataModule2.DCOMConnection1.AppServer.update(edit1.Text,tempstream);
其中update是远程方法,这样调用出错。
[Error] dm.pas(46): Type not allowed in Variant Dispatch call
请问怎样调用?

解决方案 »

  1.   

    update远程方法返回的类型是否为oleVariant类型?
      

  2.   

    不是,是string类型。
    我怎样把这个函数写入到中间层tlb文件中去。
    function Tserver.update(a:string;b:tmemorystream):string;
    begin
     ADOStoredProc1.Parameters.ParamByName('a').value:= a;
     ADOStoredProc1.Parameters.ParamByName('b').LoadFromStream(b,ftblob);
     ADOStoredProc1.ExecProc;
      result:=ADOStoredProc1.Parameters.ParamByName('a').value;
    end;
      

  3.   

    你试试先定义一个string类型的变量,然后再把这个变量赋值给Edit2.Text
    var
      TempStr: string;
    --------------
    TempStr :=DataModule2.DCOMConnection1.AppServer.update(edit1.Text,tempstream);
    Edit2.Text := TempStr;