操作步骤如下:
1、在VS.2003下编写WebServices,代码如下:
1 [WebMethod]
2 public string HelloWorld()
3 {
4 return "Hello World";
5 }
6
7 [WebMethod]
8 public DataSet GetBook()
9 {
10 sqlDataAdapter1.Fill(dsBook);
11 return dsBook;
12 }
{用C#开发web services的时候,如果你这样写 sqlDataAdapter1.Fill(ds,'tablename');}那么你是看不到上面橙色筐中的字段的。千万不要表明数据集中表名。你这样写就可以了,sqlDataAdapter1.Fill(ds);就能显示字段了!
2、新建一个Delphi7项目,分别加入TButton,THTTPRIO,TXMLTransformProvider,TClientDataSet,TDataSource,TDBGrid
3、在Delphi7中导入WebService
首选,选择File/New/Other/选择WebService/选择WSDL IMPORTER
4、这样在Unit1单元中引用WSDL单元,并在Button1的OnClick中写入代码如下:
1 procedure TForm1.Button1Click(Sender: TObject);
2 var
3 test:Service1Soap;//这个就是WSDL下的类接口对象
4 msg:widestring;
5 begin
6 //HTTPRIO1 其实就是所谓的代理类,它负责进行数据传输发送Request和接受Response的
7 test:=HTTPRIO1 as Service1Soap;
8
9 msg:=test.HelloWorld;//这就是调用web服务所暴露给我们的web服务方法WebMethod
10 showmessage(msg);
11 test.GetBook;
12 end;
13
设置HTTPRIO1的属性
WSDLLocation为http://localhost/WebService1/Service1.asmx?WSDL
Port为Service1Soap
Service为Service1
同时在AfterExecute事件写入以下代码
1 procedure TForm1.HTTPRIO1AfterExecute(const MethodName: String;
2 SOAPResponse: TStream);
3 var
4 XMLDoc: IXMLDocument;
5 begin
6 SOAPResponse.Position := 0;
7 ClientDataset1.Active := FALSE;
8 SOAPResponse.Position := 0;
9 XMLDoc := NewXMLDocument;
10 XMLDoc.Encoding := 'SUTF8'; //应该是'SUTF8'并需要引用XMLIntf,XMLDoc两个单元
11 SOAPResponse.Position := 0;
12 XMLDoc.LoadFromStream(SOAPResponse);
13 XMLDoc.SaveToFile('c:\abc.xml'); //可用这个文件做格式
14 XMLTransformProvider1.TransformRead.SourceXmlDocument := XMLDoc.GetDOMDocument;
15 ClientDataset1.Active := TRUE;
16 end;
17
5、运行程序,产生C:\abc.xml文件,打开Toole/XMLMapper;打开abc.xml;选中'Sys_books',按右键,选择Select All Children,再选择Create Datapacket from XML(或按Ctrl+D),再点击Create and Test Transformation(Ctrl+T)按钮,最后右建中间框,选择Save Transformation(Ctrl+S),保存为C:\ToDp.xtr
打开C:\ToDp.xtr文件
将<SelectEach dest="DATAPACKET\ROWDATA\ROW" from="\soap:Envelope\soap:Body\GetBookResponse\GetBookResult\diffgr:diffgram\NewDataSet\Sys_books">
改为<SelectEach dest="DATAPACKET\ROWDATA\ROW" from="\Envelope\Body\GetBookResponse\GetBookResult\diffgram\NewDataSet\Sys_books">
{from后面只要是单词后面有冒号的,该单词和冒号都要去掉,delphi7才能显示数据}
6、为XMLTransformProvider1属性TransformRead\TransformationFile指定文件C:\ToDp.xtr
delphi7调用代码:/Files/ZhouXiHong/D_Client.rar
分享到:
相关推荐
delphi7数据执行保护问题PAS单元.zip 1、无需更改代码和其他公共单元 2、只需将这些文件放到对应的代码文件目录中,默认优先调用代码目录的资源 delphi7数据执行保护问题PAS单元.zip 1、无需更改代码和其他公共...
Delphi6 SOAP Web Service程序设计篇
http post方式请求 webservices soap协议接口
delphi开发的webservices接口 目前服务端和客户端都支持
Embarcadero.Delphi.10.2.RTM.v25.0.26309.314.Lite.v14.0
Delphi 2007 Update4 精简版 文件名:CodeGear.Delphi.2007.RTM.Inc.Update4.v11.0.2902.10471.Lite.v1.4.exe
Delphi 7下使用Log4Delphi 0.8日志组件.mht
Delphi 2009 Update4 精简版。 文件名:CodeGear.Delphi.2009.RTM.Inc.Update4.v12.0.3420.21218.Lite.v2.8.exe
实战Delphi6.Kylix2.SOAP.Web Service程序设计篇李维著.zip
《Delphi Web前端开发教程——基于TMS WEB Core框架》PDF本教程适合对使用Delphi TMS WEB Core 创建 Web 应用程序感兴趣的初学者和高级开发人员。学习本教程只需要免费的 Delphi 社区版以及 TMS WEB Core 的试用版就...
Embarcadero.Delphi.10.1.Berlin.Update2.v24.0.25048.9432.Lite.v13.2 发布历史: 2016.11.22 - v13.2 1、根据 24.0.25048.9432 原版制作 2、集成 elseif、unis、x-force、cjack 等大虾的特别补丁
Delphi获取数据库前几行记录集..rar
基于Delphi.Web应用开发.pdf
DevExpress.ExpressWeb.Framework.v1.39.for.Delphi.Full.Source
实战Delphi6.Kylix2.SOAP.Web Service程序设计篇李维著 实战Delphi6.Kylix2.SOAP.Web Service程序设计篇李维著 实战Delphi6.Kylix2.SOAP.Web Service程序设计篇李维著
计算机软件-商业源码-基于Delphi6的WebServices及其实现.zip
Castalia for Delphi7&XE3 v2012.3.1 一款很不错的Delphi编程环境下的使用工具,不多说了,用了都说好,嘿嘿!
Delphi7调C#Webservice用返回ClientDataSet XML格式数据
使用方法:(Delphi 7 使用成功案例) 1、将本包中所有文件复制到开发文件保存的目录中 2、在USES单元中加入pngimage 3、窗体中插入image1控件 4、在调用位置,加入如下代码就OK啦! var Png: TPngObject; begin ...
Delphi7.Web开发与应用,关于delphi的web开发设计的电子资料文件