建立WEB SERVICE的CLIENT端
    用DELPHI7, “FILE”-》“NEW” -》“APPLICATION”

 
其中主要单元的代码如下:

.NET WEB SERVICE 学习记录(二)unit Unit1;
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)
interface
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)uses
.NET WEB SERVICE 学习记录(二)  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
.NET WEB SERVICE 学习记录(二)  Dialogs, InvokeRegistry, xmldom, Grids, DBGrids, DB, DBClient, Provider,
.NET WEB SERVICE 学习记录(二)  Xmlxform, StdCtrls, Rio, SOAPHTTPClient,DBTables,XMLIntf,XMLDoc,SOAPConst;
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)type
.NET WEB SERVICE 学习记录(二)  TForm1 
= class(TForm)
.NET WEB SERVICE 学习记录(二)    HTTPRIO1: THTTPRIO;
.NET WEB SERVICE 学习记录(二)    Button1: TButton;
.NET WEB SERVICE 学习记录(二)    Memo1: TMemo;
.NET WEB SERVICE 学习记录(二)    XMLTransformProvider1: TXMLTransformProvider;
.NET WEB SERVICE 学习记录(二)    ClientDataSet1: TClientDataSet;
.NET WEB SERVICE 学习记录(二)    DataSource1: TDataSource;
.NET WEB SERVICE 学习记录(二)    DBGrid1: TDBGrid;
.NET WEB SERVICE 学习记录(二)    Button2: TButton;
.NET WEB SERVICE 学习记录(二)    Database1: TDatabase;
.NET WEB SERVICE 学习记录(二)    Query1: TQuery;
.NET WEB SERVICE 学习记录(二)    procedure Button1Click(Sender: TObject);
.NET WEB SERVICE 学习记录(二)    procedure Button2Click(Sender: TObject);
.NET WEB SERVICE 学习记录(二)  
private

.NET WEB SERVICE 学习记录(二)  
public

.NET WEB SERVICE 学习记录(二)  end;
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)var
.NET WEB SERVICE 学习记录(二)  Form1: TForm1;
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)implementation
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)USES SERVICE1;
.NET WEB SERVICE 学习记录(二)

.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)procedure TForm1.Button1Click(Sender: TObject);
.NET WEB SERVICE 学习记录(二)var 
.NET WEB SERVICE 学习记录(二)  A:Service1Soap;
.NET WEB SERVICE 学习记录(二)  B:WideString; 
.NET WEB SERVICE 学习记录(二)  XMLDoc: IXMLDocument;
.NET WEB SERVICE 学习记录(二)  time1 : Tdatetime;
.NET WEB SERVICE 学习记录(二)begin
.NET WEB SERVICE 学习记录(二)  DataSource1.DataSet :
=  ClientDataSet1;
.NET WEB SERVICE 学习记录(二)  time1 :
= now;
.NET WEB SERVICE 学习记录(二)  A :
= HTTPRIO1 as Service1Soap;
.NET WEB SERVICE 学习记录(二)  B :
= A.GetPersonTable;
.NET WEB SERVICE 学习记录(二)  Memo1.Lines.Add( B );
.NET WEB SERVICE 学习记录(二)  DataSource1.DataSet :
=  ClientDataSet1;
.NET WEB SERVICE 学习记录(二)  ClientDataset1.Active :
= FALSE;
.NET WEB SERVICE 学习记录(二)  XMLDoc :
= NewXMLDocument;
.NET WEB SERVICE 学习记录(二)  XMLDoc.Encoding :
= SUTF8;
.NET WEB SERVICE 学习记录(二)  XMLDoc.LoadFromXML(B);
.NET WEB SERVICE 学习记录(二)  XMLTransformProvider1.TransformRead.SourceXmlDocument :
= XMLDoc.GetDOMDocument;
.NET WEB SERVICE 学习记录(二)  ClientDataset1.Active :
= TRUE;
.NET WEB SERVICE 学习记录(二)  showmessage(floattostr((now
-time1)*24*60*60));
.NET WEB SERVICE 学习记录(二)end;
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)procedure TForm1.Button2Click(Sender: TObject);
.NET WEB SERVICE 学习记录(二)VAR
.NET WEB SERVICE 学习记录(二)    time1 : Tdatetime;
.NET WEB SERVICE 学习记录(二)begin
.NET WEB SERVICE 学习记录(二)  TIME1 :
= NOW;
.NET WEB SERVICE 学习记录(二)  DataSource1.DataSet :
=  QUERY1;
.NET WEB SERVICE 学习记录(二)  
//DATABASE1.Close;
.NET WEB SERVICE 学习记录(二)  
//DATABASE1.OPEN;   打开数据库连接需要很久
.NET WEB SERVICE 学习记录(二)
       QUERY1.Close;
.NET WEB SERVICE 学习记录(二)       QUERY1.Open;
.NET WEB SERVICE 学习记录(二)  showmessage(floattostr((now
-time1)*24*60*60));
.NET WEB SERVICE 学习记录(二)end;
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)end.


其编译前,需要要配置ClientDataSet1、HTTPRIO1、XMLTransformProvider1,以及接口单元文件SERVICE1.PAS(WSDL导入)
1.ClientDataSet1的配置:ClientDataSet1.ProviderName = XMLTransformProvider1
2. 配置HTTPRIO1:HTTPRIO1.WSDLLocation = http://localhost/mywebservice/Service1.asmx?WSDL
    如果WEB SERVICES 是可用的,则HTTPRIO1.SERVICES 拉出Service1,HTTPRIO1.PORT 拉出Service1SOAP,
3. 产生SERVICE1.PAS, “FILE”->“NEW”->“OTHER”->"WEB SERVICES”->“WSDL Importer”
    在Location of WSDL File or Url:中输入http://localhost/mywebservice/Service1.asmx?WSDL,然后next-》finish
    这样就有了SERVICE1.PAS, 并在主界面上引用USES SERVICE1;
4. 配置XMLTransformProvider1前需要配置一个*.XTR文件来引导如何解析XML文件,是要赋值给属性      XMLTransformProvider1.TransformRead.TransformationFile
   配置过程:需要用到DELPHI7的工具XML MAPPER(在DELPHI7的tools工具中)
     1).需要一个从接口传过来的XML原形,如

.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)
<PersonTable>
.NET WEB SERVICE 学习记录(二)  
<temp>
.NET WEB SERVICE 学习记录(二)    
<USER_ID>14</USER_ID>
.NET WEB SERVICE 学习记录(二)    
<USER_NAME>test</USER_NAME>
.NET WEB SERVICE 学习记录(二)    
<USER_PASSWORD>test</USER_PASSWORD>
.NET WEB SERVICE 学习记录(二)    
<USED_DATE>2003-11-05T00:00:00.0000000+08:00</USED_DATE>
.NET WEB SERVICE 学习记录(二)    
<CHANGE_DATE>2005-03-15T14:47:58.0000000+08:00</CHANGE_DATE>
.NET WEB SERVICE 学习记录(二)    
<LOGOUT_FLAG>0</LOGOUT_FLAG>
.NET WEB SERVICE 学习记录(二)    
<USER_ADMIN_FLAG>0</USER_ADMIN_FLAG>
.NET WEB SERVICE 学习记录(二)    
<USER_EMAIL>test@iconsh.com.cn</USER_EMAIL>
.NET WEB SERVICE 学习记录(二)  
</temp>
.NET WEB SERVICE 学习记录(二)   .NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)
.NET WEB SERVICE 学习记录(二)
</PersonTable>
.NET WEB SERVICE 学习记录(二)


  保存为1.XML(可以先用程序从接口先得到,就是把ClientDataset1.Active := TRUE;先注销,从MEMO1得到XML原型)
2). 打开XML MAPPER,在左边框“Document View”中右键点击“open XML document”,打开上步骤存的1.XML
   就可以看到表格结构了
3). 在XML MAPPER,左边框的结构上右键“SELECT ALL”把所有字段都选择到中间框
4).点击XML MAPPER的菜单Create|Datapacket from XML.,则在右边的Datapacket看到转换的表格了
5) 点击XML mapper的菜单保存转换过程 File -》Save -》 Transformation,保存名称为“ToDp.xtr”,这样就建立了对应格式用的格式文件
5.配置XMLTransformProvider1: XMLTransformProvider1.TransformRead.TransformationFile=目录+ToDp.xtr

这样就完成了客户端,进行编译运行就可以看到从WEB SERVICE传过来的数据了,如果改SQL,需要重新配置Transformation的文件“ToDp.xtr”


 

相关文章:

  • 2021-09-02
  • 2021-12-28
  • 2022-01-05
  • 2022-01-20
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
  • 2021-11-30
  • 2021-05-07
  • 2021-05-26
  • 2021-07-23
相关资源
相似解决方案