第一步:编写服务器的应用程序
首先在Delphi的IDE中选择”File|New|Other…”,然后在WebServices页面中选择Soap Server Application图标,如下图所示:
然后在New Soap Server Application对话框中选择Web App Debugger executable,如下图所示:
点击OK按钮之后,Delphi会自动生成一个WebModule,在这个Module中会包含三个WebServices的控件,如下图所示:
然后然后在WebServices页面中选择Soap Server Data Module图标, OK后, Delphi 弹出Soap Data Module Wizard对话框, 如下图所示:
在Class Name中输入类名:D6DBDataModule1. 点击OK后, Delphi会自动产生一个SOAP数据模块, 在该模块中加入TdataBase, Tquery, TdataSetProvider, 三个控件, 如下图所示:
设置各控件的属性,跟以往的Delphi数据库应用程序的设置基本上相同, 其中, TdataSetProvider是一个DataAccess控件, 提供远程呼叫的支持.
编译执行该应用程序, 使之注册. 完成服务器端的应用程序设计.
第二步:编写客户端的应用程序
添加一个新的应用程序项目, 在Form窗体中添加TDBNavigator, TDBGrid控件, 如下图所示:
然后添加一个数据模块, 在其中加入TSaopConnection, TclientDataSet和TdataSource控件, 如下图所示:
其中的TSaopConnection控件就是利用SOAP协议与远程服务器端相联的接口. 该控件的属性设置如下图所示, TsaopConnection的URL的格式:
http://WebServer的地址/ WebService的应用程序名称/soap/SoapServerDataModule的名称
然后设置TclientDataSet控件的属性, 设置RemoteServer的属性为TsaopConnection控件的名字, 点选ProviderName.
接下来, 在窗体所在的单元添加如下代码:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm4 = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit5,DB; //引用DataModule所在单元;
{$R *.dfm}
end.
设置TDBNavigator,TDBGri控件的DataSource的属性为dmDemo1.dsDemo1, 其中, dmDemo1是数据模块的名字, dsDemo1为数据模块中的TdataSource控件的名字.
激活TclientDataSet的Active属性为True, Form窗体得到如下的画面.
编译持行该项目组,把客户端程序复制到网络上的任一台计算机, 都可执行. 一个Web Services 的数举库应用程序例子完成.
参考资料:实战Delphi6/Kylix2:SOAP/Web Service程序设计篇 , 作者:李维
本例的设计思想大多来自该书, 以及一些控件的名字