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

相關文章
相關標籤/搜索