web当服务端android当客户端,Xe5开发web服务端和手机客户端

本文详细介绍了如何使用Delphi创建一个三层的Android程序,通过 webservices 构建服务端,并实现数据集的返回。服务端创建了一个stand-alone VCL application,使用Firedac连接SQL Server数据库,通过ClientDataset返回XML数据。在Android客户端,使用Firemonkey mobile application和Live Binding绑定数据集,调用服务端的web服务获取并显示数据。整个过程涵盖了从服务端的构建到客户端的数据获取和展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核心提示:我们开发一个三层的android程序建立一个webservices stand-alone vcl application 作为手机访问的服务端1、new-other-webservices2、选择s...

我们开发一个三层的android程序

建立一个webservices  stand-alone vcl application 作为手机访问的服务端

1、new->other->webservices

c75f34fd2d9afeacc07b480f21b7da58.png

2dfb77dca45a0cd748e71cabcd375357.png

2、选择 stand-alone vcl application

710fa2ceb38c95ba0a7bedcb75800577.png

3、这里使用 默认端口8080

22879fb2b75ded9d3dfa2410c3505cfb.png

4、选择创建接口

27a5993e1a0a63ef4430e5f0625c65a0.png

5、给服务起个名字

04d70b98c8363eb3aae65d2bc04ab49e.png

6、点ok后保存工程,保存为目录如下:

4587af3c420b1c247ee31c443d7239aa.png

7、至此为止,什么代码都不写,点击运行,我们看到

723f9b140bab79346e18145766f6a88d.png

8、启动并点击 open browser按钮在浏览器里看到

601ccaa6e2d71741c5246e06ecca9a6f.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服务器,在控件上邮件 设置一下信息

0fc8919a59b1597de99e1c77ae538ca3.png

3、其他数据控件连接

FDquery1已经自动连上了connection,我们在sql里写以下语句

dfb92f41df13a4b1e17ed4ec8ef00364.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服务

dd6260a63151abd3e90eede2de5c6fe3.png

服务端至此完成,实现了用clientdataset的xmldata返回数据集的过程,当然您可以对返回的xml进行压缩和解压缩的操作,减小网络传输压力。

我们把供手机端调用的web服务完成,接下来实现手机端调用webservices获取数据

1、新建firemonkey mobile application

42768c7c3e2cfb9e8ef288f5e76a4bd6.png

2、选择blank application

add408aa0b8c830358ddbdb9b649e014.png

3、这里选择分辨率,我用的手机是三星的p3100,没别的优点 就是大,7寸的屏,我女儿管这个叫平板手机  O(∩_∩)O~

aa18cbad4c2ef8c335d6799729efed25.png

4、界面布局摆放如下:

b20ea3020ffb339c19de7e5c6b0bf8e4.png

5、绑定数据集

xe5中使用livebingding来绑定数据集,没有datasource熟悉了,理论上所有的控件都可以绑定数据集。

先在clintdataset中添加字段

4a694eb7057d65d738515ed206019b1d.png

依次添加 code ,name ,py_code 三个字段,然后选中grid,点击

80aa8bf7a7844151888724361de74b49.png,然后将dataset拖拉到grid中:如图

c32d45c57fe968a67281f60c8d269f8d.png

当然,您要选择clientdataset1下的这个*号再拖拽,,这就完成了绑定。。。

然后调整列宽等选项。

界面就这样吧,继续。。。,先启动咱们上几片文章建立的手机服务端

24bf46ce835dc213337ebcdfb6515707.png

导入webservices单元,file->new->other->webservices->选择 wsdlimporter

d9d2506b5234642e7e28b5702d973ebf.png

830d50c3875b305835e248b986ce4004.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平台上先测试一下,如图:

e06ad0a34972b3d1040ac8f34ace7317.png

win32平台上没问题 ok,接下来target选择我的 大平板手机 O(∩_∩)O~ ,p3100

运行如下:

f57ed52a6b4455e044a6a45161257587.png

以上文章:xe5 android的服务端和手机客户端的源代码下载地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值