Xe5开发web服务端和手机客户端
2014-06-01 00:00
141 查看
摘要: Delphi Xe5 web服务端 手机 客户端
我们开发一个三层的android程序
建立一个webservices stand-alone vcl application 作为手机访问的服务端
1、new->other->webservices
![](http://static.oschina.net/uploads/img/201406/01061533_E74R.png)
![](http://static.oschina.net/uploads/img/201406/01061533_AFXg.png)
2、选择 stand-alone vcl application
![](http://static.oschina.net/uploads/img/201406/01061533_mhD6.png)
3、这里使用 默认端口8080
![](http://static.oschina.net/uploads/img/201406/01061533_zDg5.png)
4、选择创建接口
![](http://static.oschina.net/uploads/img/201406/01061533_993v.png)
5、给服务起个名字
![](http://static.oschina.net/uploads/img/201406/01061534_mOZW.png)
6、点ok后保存工程,保存为目录如下:
![](http://static.oschina.net/uploads/img/201406/01061534_lxzZ.png)
7、至此为止,什么代码都不写,点击运行,我们看到
![](http://static.oschina.net/uploads/img/201406/01061534_E3dX.png)
8、启动并点击 open browser按钮在浏览器里看到
![](http://static.oschina.net/uploads/img/201406/01061534_Ll44.png)
一个web服务就创建完成了。
接下来创建一个返回数据集的过程,用webservices发布,供手机端调用。这里我使用firedac
1、打开上一篇自动创建的WebModule
然后分别拖放以下数据连接控件
FDConnection1:firedac连接数据库的
FDPhysMSSQLDriverLink1: 数据驱动 选的是sqlserver ,另外还有 db2 ,oracle,acess ,excel ,sqllite,mysql等
FDQuery1: 相当于adoquery
DataSetProvider1:delphi的provider
ClientDataSet1: delphi的我最喜欢的cds
2、数据库的连接
首先用 FDConnection1 连接sqlserver服务器,在控件上邮件 设置一下信息
![](http://static.oschina.net/uploads/img/201406/01061534_c89h.png)
3、其他数据控件连接
FDquery1已经自动连上了connection,我们在sql里写以下语句
![](http://static.oschina.net/uploads/img/201406/01061534_XDyP.png)
接下来 DataSetProvider1 连好fdquery1,clientdataset1的providername选择 DataSetProvider1
4、在WebModule 中的public中实现以下代码
function TAndroidWM.GetEmployee_Mi: widestring;
begin
with clientdataset1 do
begin
close;
open;
result:=xmldata;
close;
end;
end;
5、在AdroidServicesImpl.pas 引用WebModule 的接口实现的public单元实现以下代码
function GetEmployee_mi:widestring;stdcall;
function TAdroidServices.GetEmployee_mi: string;
var
dm:TAndroidWM;
begin
dm:=TAndroidWM.Create(nil);
result:=dm.GetEmployee_Mi;
dm.Free;
end;
6、在 AdroidServicesIntf.pas 单元实现以下代码
type
IAdroidServices = interface(IInvokable) ['{9B1596C5-AD43-4849-830E-0B82D8BAA043}']
function GetEmployee_mi:widestring;stdcall;
end;
6、运行server 查看webservice是否实现了GetEmployee_mi服务
![](http://static.oschina.net/uploads/img/201406/01061534_HmMF.png)
服务端至此完成,实现了用clientdataset的xmldata返回数据集的过程,当然您可以对返回的xml进行压缩和解压缩的操作,减小网络传输压力。
我们把供手机端调用的web服务完成,接下来实现手机端调用webservices获取数据
1、新建firemonkey mobile application
![](http://static.oschina.net/uploads/img/201406/01061534_o9Hw.png)
2、选择blank application
![](http://static.oschina.net/uploads/img/201406/01061534_ogad.png)
3、这里选择分辨率,我用的手机是三星的p3100,没别的优点 就是大,7寸的屏,我女儿管这个叫平板手机 O(∩_∩)O~
![](http://static.oschina.net/uploads/img/201406/01061534_C3SK.png)
4、界面布局摆放如下:
![](http://static.oschina.net/uploads/img/201406/01061534_5llb.png)
5、绑定数据集
xe5中使用livebingding来绑定数据集,没有datasource熟悉了,理论上所有的控件都可以绑定数据集。
先在clintdataset中添加字段
![](http://static.oschina.net/uploads/img/201406/01061534_FlfI.png)
依次添加 code ,name ,py_code 三个字段,然后选中grid,点击
![](http://static.oschina.net/uploads/img/201406/01061534_08lT.png)
,然后将dataset拖拉到grid中:如图
![](http://static.oschina.net/uploads/img/201406/01061534_rxmn.png)
当然,您要选择clientdataset1下的这个*号再拖拽,,这就完成了绑定。。。
然后调整列宽等选项。
界面就这样吧,继续。。。,先启动咱们上几片文章建立的手机服务端
![](http://static.oschina.net/uploads/img/201406/01061534_JyNh.png)
导入webservices单元,file->new->other->webservices->选择 wsdlimporter
![](http://static.oschina.net/uploads/img/201406/01061534_iwo8.png)
输入wsdl地址 http://localhost:8080/wsdl/IAdroidServices
![](http://static.oschina.net/uploads/img/201406/01061535_zPkx.png)
之后施展一路回车大法,只到生成一个单元文件保存并在手机窗体单元中引用。
在窗体上的按钮的click事件中实现以下代码:
procedure TForm1.button1Click(Sender: TObject);
var
ws:IAdroidServices;
s:string;
begin
ws:=GetIAdroidServices(true,'http://10.110.0.56:8080/soap/IAdroidServices',nil); //参数中可以使用配置的url
s:=ws.GetEmployee_mi;
if length(s)<>0 then
clientdataset1.xmldata:=s;
end;
可以在win32平台上先测试一下,如图:
![](http://static.oschina.net/uploads/img/201406/01061535_oWlI.png)
win32平台上没问题 ok,接下来target选择我的 大平板手机 O(∩_∩)O~ ,p3100
运行如下:
![](http://static.oschina.net/uploads/img/201406/01061535_P1vT.png)
以上文章:xe5 android的服务端和手机客户端的源代码下载地址
http://files.cnblogs.com/nywh2008/AndroidTest.rar
Xe5开发web服务端和手机客户端
核心提示:我们开发一个三层的android程序建立一个webservices stand-alone vcl application 作为手机访问的服务端1、new-other-webservices2、选择s...我们开发一个三层的android程序
建立一个webservices stand-alone vcl application 作为手机访问的服务端
1、new->other->webservices
![](http://static.oschina.net/uploads/img/201406/01061533_E74R.png)
![](http://static.oschina.net/uploads/img/201406/01061533_AFXg.png)
2、选择 stand-alone vcl application
![](http://static.oschina.net/uploads/img/201406/01061533_mhD6.png)
3、这里使用 默认端口8080
![](http://static.oschina.net/uploads/img/201406/01061533_zDg5.png)
4、选择创建接口
![](http://static.oschina.net/uploads/img/201406/01061533_993v.png)
5、给服务起个名字
![](http://static.oschina.net/uploads/img/201406/01061534_mOZW.png)
6、点ok后保存工程,保存为目录如下:
![](http://static.oschina.net/uploads/img/201406/01061534_lxzZ.png)
7、至此为止,什么代码都不写,点击运行,我们看到
![](http://static.oschina.net/uploads/img/201406/01061534_E3dX.png)
8、启动并点击 open browser按钮在浏览器里看到
![](http://static.oschina.net/uploads/img/201406/01061534_Ll44.png)
一个web服务就创建完成了。
接下来创建一个返回数据集的过程,用webservices发布,供手机端调用。这里我使用firedac
1、打开上一篇自动创建的WebModule
然后分别拖放以下数据连接控件
FDConnection1:firedac连接数据库的
FDPhysMSSQLDriverLink1: 数据驱动 选的是sqlserver ,另外还有 db2 ,oracle,acess ,excel ,sqllite,mysql等
FDQuery1: 相当于adoquery
DataSetProvider1:delphi的provider
ClientDataSet1: delphi的我最喜欢的cds
2、数据库的连接
首先用 FDConnection1 连接sqlserver服务器,在控件上邮件 设置一下信息
![](http://static.oschina.net/uploads/img/201406/01061534_c89h.png)
3、其他数据控件连接
FDquery1已经自动连上了connection,我们在sql里写以下语句
![](http://static.oschina.net/uploads/img/201406/01061534_XDyP.png)
接下来 DataSetProvider1 连好fdquery1,clientdataset1的providername选择 DataSetProvider1
4、在WebModule 中的public中实现以下代码
function TAndroidWM.GetEmployee_Mi: widestring;
begin
with clientdataset1 do
begin
close;
open;
result:=xmldata;
close;
end;
end;
5、在AdroidServicesImpl.pas 引用WebModule 的接口实现的public单元实现以下代码
function GetEmployee_mi:widestring;stdcall;
function TAdroidServices.GetEmployee_mi: string;
var
dm:TAndroidWM;
begin
dm:=TAndroidWM.Create(nil);
result:=dm.GetEmployee_Mi;
dm.Free;
end;
6、在 AdroidServicesIntf.pas 单元实现以下代码
type
IAdroidServices = interface(IInvokable) ['{9B1596C5-AD43-4849-830E-0B82D8BAA043}']
function GetEmployee_mi:widestring;stdcall;
end;
6、运行server 查看webservice是否实现了GetEmployee_mi服务
![](http://static.oschina.net/uploads/img/201406/01061534_HmMF.png)
服务端至此完成,实现了用clientdataset的xmldata返回数据集的过程,当然您可以对返回的xml进行压缩和解压缩的操作,减小网络传输压力。
我们把供手机端调用的web服务完成,接下来实现手机端调用webservices获取数据
1、新建firemonkey mobile application
![](http://static.oschina.net/uploads/img/201406/01061534_o9Hw.png)
2、选择blank application
![](http://static.oschina.net/uploads/img/201406/01061534_ogad.png)
3、这里选择分辨率,我用的手机是三星的p3100,没别的优点 就是大,7寸的屏,我女儿管这个叫平板手机 O(∩_∩)O~
![](http://static.oschina.net/uploads/img/201406/01061534_C3SK.png)
4、界面布局摆放如下:
![](http://static.oschina.net/uploads/img/201406/01061534_5llb.png)
5、绑定数据集
xe5中使用livebingding来绑定数据集,没有datasource熟悉了,理论上所有的控件都可以绑定数据集。
先在clintdataset中添加字段
![](http://static.oschina.net/uploads/img/201406/01061534_FlfI.png)
依次添加 code ,name ,py_code 三个字段,然后选中grid,点击
![](http://static.oschina.net/uploads/img/201406/01061534_08lT.png)
,然后将dataset拖拉到grid中:如图
![](http://static.oschina.net/uploads/img/201406/01061534_rxmn.png)
当然,您要选择clientdataset1下的这个*号再拖拽,,这就完成了绑定。。。
然后调整列宽等选项。
界面就这样吧,继续。。。,先启动咱们上几片文章建立的手机服务端
![](http://static.oschina.net/uploads/img/201406/01061534_JyNh.png)
导入webservices单元,file->new->other->webservices->选择 wsdlimporter
![](http://static.oschina.net/uploads/img/201406/01061534_iwo8.png)
输入wsdl地址 http://localhost:8080/wsdl/IAdroidServices
![](http://static.oschina.net/uploads/img/201406/01061535_zPkx.png)
之后施展一路回车大法,只到生成一个单元文件保存并在手机窗体单元中引用。
在窗体上的按钮的click事件中实现以下代码:
procedure TForm1.button1Click(Sender: TObject);
var
ws:IAdroidServices;
s:string;
begin
ws:=GetIAdroidServices(true,'http://10.110.0.56:8080/soap/IAdroidServices',nil); //参数中可以使用配置的url
s:=ws.GetEmployee_mi;
if length(s)<>0 then
clientdataset1.xmldata:=s;
end;
可以在win32平台上先测试一下,如图:
![](http://static.oschina.net/uploads/img/201406/01061535_oWlI.png)
win32平台上没问题 ok,接下来target选择我的 大平板手机 O(∩_∩)O~ ,p3100
运行如下:
![](http://static.oschina.net/uploads/img/201406/01061535_P1vT.png)
以上文章:xe5 android的服务端和手机客户端的源代码下载地址
http://files.cnblogs.com/nywh2008/AndroidTest.rar
相关文章推荐
- Delphi XE5通过WebService开发Web服务端和手机客户端
- Xe5开发web服务端和手机客户端
- DELPHI XE5开发WEB服务器及安卓手机客户端
- DELPHI XE5开发WEB服务器及安卓手机客户端
- [整理]在现有Web项目中添加Web Service支持,服务端及客户端开发
- IOS开发系列之阿堂教程:玩转IPhone客户端和Web服务端交互(客户端)实践
- Android手机 (客户端)和PCweb 端(服务端)的socket通信
- 手机客户端和web端开发的异同
- 手机客户端和web端开发的异同
- 使用gSoap开发Web Service C/C++客户端[转]
- Firefox3与WEB客户端开发相关的新特性
- 使用Axis2开发Web服务 --- 再谈AXIOM客户端
- 使用Axis2开发Web服务 --- 客户端调用
- Axis的Web服务开发 --- 客户端访问Axis2的服务
- C#进行Visio二次开发之Web端启动绘图客户端并登录
- session对象在web开发中的创建以及sessionId生成并返回客户端的运行机制
- 使用Axis2开发Web服务 --- 使用XmlBeans建立客户端
- 在WEB下的客户端控件的开发应用
- 手机网络应用客户端软件开发实践简介
- 使用gSoap开发Web Service C/C++客户端[转]