我是这样写的
客户端代码:
var
  SI: SIData;
begin
   TRY
    SI := CoMSData.CreateRemote('10.1.2.197');//远程服务器IP
    SI.AddUser(‘电脑名称’,'本机 IP',‘帐号’);  //中间层的过程
    if assigned(SI) then
      SI := nil;
   EXCEPT
   END;
end;
客户端和服务器端在同一台机器上正常,如果不在同一台机器上就不行了,应该如何解决呢?

解决方案 »

  1.   

    http://dev.firnow.com/course/7_databases/oracle/oraclexl/20100628/220783.html
      

  2.   

    http://dev.firnow.com/course/7_databases/oracle/oraclexl/20100628/220783.html
      

  3.   

    http://www.websnap123.com/show-TVRFME1EYzE=.html把应用服务器线程模式改成free模式就可以了.
    代码:
    initialization
      TComponentFactory.Create(ComServer, TTestDM,
        Class_TestDM, ciMultiInstance, tmApartment);
    end
    更改为:initialization
      TComponentFactory.Create(ComServer, TTestDM,
        Class_TestDM, ciMultiInstance, tmFree);
    end
      

  4.   

    在服务器中声明一接口。通过接口,调用服务器中的program。
    如:
    procedure TTServer.RunProgram(const Number: WideString);
    var k:integer;
    begin
      k:=StrToInt(Number);
      case k of
        1 :  ServerFrm.SetNum;  // 过程名
        2 :   ;
        3 :   ;
      end;
    end;客户端:procedure TMainFrm.RxSpeedButton10Click(Sender: TObject);
    begin
      DataModule1.SocketConnection1.AppServer.RunProgram('1');
    end;注: 指定字符串‘1’,就是调用服务器中的ServerFrm.SetNum过程。