前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DELPHI XE5开发WEB服务器及安卓手机客户端[通俗易懂]

DELPHI XE5开发WEB服务器及安卓手机客户端[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-09 10:26:54
4.5K0
发布2022-09-09 10:26:54
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

时间:2013-9-18 17:09:45 点击: 6456

Delphi xe5作为最新开发利器,就类似如当年的DELPHI,功能强大,快发速度快,把VS2012远远甩在后面。下面以一个小例作为您开启新的历程:

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

1、new->other->webservices

558×384
558×384
558×418
558×418

2、选择 stand-alone vcl application

523×511
523×511

3、这里使用 默认端口8080

524×512
524×512

4、选择创建接口

561×300
561×300

5、给服务起个名字

448×206
448×206

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

273×219
273×219

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

407×262
407×262

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

916×395
916×395

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

543×599
543×599

3、其他数据控件连接

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

634×445
634×445

接下来 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服务

684×415
684×415

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

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

1、新建firemonkey mobile application

560×370
560×370

2、选择blank application

780×593
780×593

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

825×522
825×522

4、界面布局摆放如下:

1359×355
1359×355

5、绑定数据集

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

先在clintdataset中添加字段

745×456
745×456

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

264×37
264×37

,然后将dataset拖拉到grid中:如图

1081×591
1081×591

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

然后调整列宽等选项。

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

405×266
405×266

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

824×444
824×444

输入wsdl地址 http://localhost:8080/wsdl/IAdroidServices

527×417
527×417

之后施展一路回车大法,只到生成一个单元文件保存并在手机窗体单元中引用。

在窗体上的按钮的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平台上先测试一下,如图:

630×596
630×596

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

运行如下:

278×442
278×442

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161312.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Xe5开发web服务端和手机客户端
    • 时间:2013-9-18 17:09:45 点击: 6456
      • Delphi xe5作为最新开发利器,就类似如当年的DELPHI,功能强大,快发速度快,把VS2012远远甩在后面。下面以一个小例作为您开启新的历程:
        • 建立一个webservices stand-alone vcl application 作为手机访问的服务端
          • 1、new->other->webservices
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档