您现在的位置:首页 >> 其它平台 >> Andriod >> 内容

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

时间:2013/9/18 17:09:45 点击:

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

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

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

1、new->other->webservices

?

2、选择?stand-alone vcl application

3、这里使用 默认端口8080

4、选择创建接口

5、给服务起个名字

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

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

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

?

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

??????

?????3、其他数据控件连接

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

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

?????

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

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

?

1、新建firemonkey mobile application

2、选择blank application

???

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

4、界面布局摆放如下:?

5、绑定数据集

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

?? 先在clintdataset中添加字段

???????

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

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

?然后调整列宽等选项。

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

??????????

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

??????

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

??????

?

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

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

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

运行如下:

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

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

作者:至今 来源:网络
共有评论 23相关评论
发表我的评论
  • 大名:
  • 内容:
  • 盒子文章(www.2ccc.com) ? 2019 版权所有 All Rights Reserved.
  • 沪ICP备05001939号