客户端通过ClientDataSet访问数据库,但是发布后怎么让ClientDataSet连接到中间层的DataProvider?我在本机开发时可以直接连到中间层,但是发布的时候怎么让客户端连到中间层服务器?
是不是要把中间层的机器地址写到配置文件中去?但是这样的话,是不是在开发时就不能直接在属性面板中直接指定DataProvider?请高手指点!

解决方案 »

  1.   

    我在本机开发时可以直接连到中间层,但是发布的时候怎么让客户端连到中间层服务器?
    是不是要把中间层的机器地址写到配置文件中去?但是这样的话,是不是在开发时就不能直接在属性面板中直接指定DataProvider?
    //////////////////////////
    通过DCOMConnection 或SocketConnection连接中间层,在这两个组件里设置中间层所在的位置
      

  2.   

    当然是要写在配置文件里了,连接对象也要根据配置文件动态产生,不能由APPLICATION创建
      

  3.   

    QUERY.CLOSE; 
    QUERY.PARAMBYNAME[CODE].ASSTRING:=CPARA; 
    END; 客户端调用: 
    PROCEDURE TFORM1.FORMSHOW(SENDER:TOBJECT); 
    BEGIN 
    CLIENTDATASET1.CLOSE; 
    DATAMODULE1.REMOOTESERVER1.APPSERVER.GETQUERYPARA(参数); 
    CLIENTDATASET1.OPEN; 
    END; 因为我SERVER中有多个QUERY,但只有一个PROVIDER,用你那种方法当然可行. 
    但这种方法控制起来比较容易.运行是没有问题, 
      

  4.   

    我在APPLICATION SERVER中声明一个方法, PROCEDURE GETQUERYPARA(VAR CPARA:OLEVARIANT); 
    BEGIN 
    QUERY.CLOSE; 
    QUERY.PARAMBYNAME[CODE].ASSTRING:=CPARA; 
    END; 客户端调用: 
    PROCEDURE TFORM1.FORMSHOW(SENDER:TOBJECT); 
    BEGIN 
    CLIENTDATASET1.CLOSE; 
    DATAMODULE1.REMOOTESERVER1.APPSERVER.GETQUERYPARA(参数); 
    CLIENTDATASET1.OPEN; 
    END; 因为我SERVER中有多个QUERY,但只有一个PROVIDER,用你那种方法当然可行. 
    但这种方法控制起来比较容易.运行是没有问题, 
      

  5.   

    增加DCOMConnection控件,用它来连接