最近在学习delphi的三层,在Object Repository中添加了一个远程数据模块,然后向模块中添加table
组件并将它与数据库相连启动了,最后添加一个datasetprovider并设置它的属性dataset=
table1;constraints:=true;然后就运行,书上说系统自动注册,反正我什么也没瞧见。运行
时就一闪就完了。
接着作客户端,往form上放一个SocketConnection组件,servername下拉列表中有刚才注册的
东西*^-^*,书上接着说将connected属性设置为true,将出现服务器窗体,说明客户机已经
启动了服务器,结果问题来了,出现错误提示“RPC不处在监听状态”,好了,现在需要各位。
每次是时好时坏,不知道怎么回事,说注册吗,有,但是在TClientDataSet的provdieName下拉整个delphi就没响应,
Socket这个有运行。

解决方案 »

  1.   

    SocketConnection的服务器不是直接指定ip、端口的?
    忘了
      

  2.   

    先说名是   sql server  的还是   oracle的 .  另外远程数据模块中 要加上  sqlquery 控件
      

  3.   

    是不是把服务器端的RPC服务给停止了哦。
      

  4.   


    datasetprovider.allowsqlcommand:=true;
    另先试下  sqlquery能不能连上先 
    能连的话  clientdataset   也可以        
    三层弄了几年了  不会有问题的
      

  5.   

    ukn_ma4大侠能不能指导下一般三层要怎么弄。刚接触很多都不懂,以前都是两层的。那些思路过来就不能用,最近是束手无策!
      

  6.   

    能不能给个demo,万分感谢,邮箱是[email protected]
      

  7.   

    使用SocketConnection组件,服务器一定启动SckSvr.exe。
      

  8.   

    二层变三层可以用d7或d2009的datasanp技术,比较方便,三层后,客户端不用再安装数据库驱动和建数据库连接
      

  9.   

    顶,高手,我也想要个demo,邮箱:[email protected]
      

  10.   

    楼主看的书已经是说delphi7的吧,delphi2007以后的需要手工注册,在中间层服务器中加一句话
    initialization
      TComponentFactory.Create(ComServer, TZCYW_SERVER,
        Class_ZCYW_SERVER, ciMultiInstance, tmApartment);
      ComServer.UpdateRegistry(true); 红色的是自己手工加上去的。