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

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

  核心提示:咱们开发一个三层的android程序创建一个webservices stand-alone vcl application 做为手机访问的服务端一、new-other-webservices二、选择s...mysql

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

创建一个webservices  stand-alone vcl application 做为手机访问的服务端web

一、new->other->webservicessql

558×384

558×418

二、选择 stand-alone vcl application数据库

523×511

三、这里使用 默认端口8080浏览器

524×512

四、选择建立接口服务器

561×300

五、给服务起个名字网络

448×206

六、点ok后保存工程,保存为目录以下:oracle

273×219

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

407×262

八、启动并点击 open browser按钮在浏览器里看到916×395

一个web服务就建立完成了。

接下来建立一个返回数据集的过程,用webservices发布,供手机端调用。这里我使用firedac

一、打开上一篇自动建立的WebModule

而后分别拖放如下数据链接控件

FDConnection1:firedac链接数据库的
   FDPhysMSSQLDriverLink1: 数据驱动 选的是sqlserver ,另外还有 db2 ,oracle,acess ,excel ,sqllite,mysql等
   FDQuery1: 至关于adoquery
   DataSetProvider1:delphi的provider
   ClientDataSet1: delphi的我最喜欢的cds

二、数据库的链接

首先用  FDConnection1 链接sqlserver服务器,在控件上邮件 设置一下信息

543×599

三、其余数据控件链接

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

634×445

接下来 DataSetProvider1 连好fdquery1,clientdataset1的providername选择 DataSetProvider1

四、在WebModule 中的public中实现如下代码

   function TAndroidWM.GetEmployee_Mi: widestring;
    begin
    with clientdataset1 do
    begin
      close;
      open;
      result:=xmldata;
      close;
    end;
    end;

五、在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;

六、在 AdroidServicesIntf.pas 单元实现如下代码

type

IAdroidServices = interface(IInvokable)   ['{9B1596C5-AD43-4849-830E-0B82D8BAA043}']

function GetEmployee_mi:widestring;stdcall;

end;

六、运行server 查看webservice是否实现了GetEmployee_mi服务

684×415

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

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

一、新建firemonkey mobile application

560×370

二、选择blank application

780×593

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

825×522

四、界面布局摆放以下:

1359×355

五、绑定数据集

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

先在clintdataset中添加字段

745×456

依次添加 code ,name ,py_code 三个字段,而后选中grid,点击264×37,而后将dataset拖拉到grid中:如图

1081×591

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

而后调整列宽等选项。

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

405×266

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

824×444

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

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&times;596

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

运行以下:

278&times;442

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

http://files.cnblogs.com/nywh2008/AndroidTest.rar

相关文章
相关标签/搜索