本人已经用WebService做服务层连接好数据库
在写客户端应用程序的时候,可以有两种选择
1.用TSOAPConnection组件,直接连接服务的DSP
2.用THTTPRIO组件,直接调用服务端的IWEBAPP接口
请问两种方法各有什么特点?哪种更好一点?
麻烦有相关经验的高手赐教!

解决方案 »

  1.   

    如果你真的要傳DataSet 的話,SOAP DataModule+DataSnap 也許比較方便http://www.dreams.idv.tw/~code6421/Doc/DataSnap.html
    unit Unit3;
    {$WARN SYMBOL_PLATFORM OFF}
    interface
    uses
       Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
       DBClient, Project1_TLB, StdVcl, Provider, DB, DBTables;
    type
       TCoTestRDM = class(TRemoteDataModule, ICoTestRDM)
        Table1: TTable;
        DataSetProvider1: TDataSetProvider;
       private
        { Private declarations }
       protected
        class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);    override;
       public
        { Public declarations }
       end;
    var
       FChildRDMFactory:TComponentFactory;
       implementation
    uses Unit2;
    {$R *.DFM}
    class procedure TCoTestRDM.UpdateRegistry(Register: Boolean; const ClassID,    ProgID: string);
    begin
     if Register then
       begin
        inherited UpdateRegistry(Register, ClassID, ProgID);
        EnableSocketTransport(ClassID);
        EnableWebTransport(ClassID);
       end else   begin
        DisableSocketTransport(ClassID);
        DisableWebTransport(ClassID);
        inherited UpdateRegistry(Register, ClassID, ProgID);
       end;
    end;
    initialization
       FChildRDMFactory := TComponentFactory.Create(ComServer, TCoTestRDM,
       Class_CoTestRDM, ciInternal, tmApartment);
    end.
      

  2.   

    我觉得还是尽量用SOAP Connection好
      

  3.   

    两种方法都可以,THTTPRIO我用过,也不错
      

  4.   

    本人尝试用TSOAPConnection连接服务
    遇到一些问题:
    1.本人的服务是用Kylix3写的,用apache2.0.40提供服务在编写程序的时候使用了TSOAPDataModule,放入了:SQLConnection,SQLDataSet,DataSetProvider;并连好了一个PostgreSQL数据库.编译生成了一个叫libwebtest.so的文件,并copy到apache的虚拟目录,重起了apache.
    2.接下来编写客户端,用了TSOAPConnection.在URL里:http://192.168.xxx.xxx/libwebtest.so/soap/Iwebdm;"Iwebdm"是SOAP数据模块接口
    接着使用ClientDataSet连接到TSOAPConnection,但是在Providername里什么也没有?
    3.我用网页可以访问到服务程序:http://192.168.xxx.xxx/webapp
    请问怎么设置TSOAPConnection才能连到服务端?是不是*.so文件的问题?
      

  5.   

    我也遇上同楼上一样的问题,
    怀疑是D6UP2的BUG所致,试不出来,请高手指点哦