Delphi Xe5开始支持Android编程了。Delphi的春天终于来了!
我也是刚接触XE,以前一直都在用D7,一直都在等它支持Android今天终于等来了,可以开始做项目了,虽然XE还存在很多BUG,但我相信,Embarcadero在努力,我们也在努力!
下面我们来做一个三层架构,访问数据库的程序。
一、服务器端
1、建立主程序
New-other-webService-SOAP Server Application
起名为: ServerFrm
在WebModal模块里加入如下控件:
加入:FDConnection1、FDQuery1、DataSetProvider1 、ClientDataSet1、 FDPhysMSSQLDriverLink1
ClientDataSet1.ProviderName := DataSetProvider1;
DataSetProvider1.DataSet := FDQuery1;
FDQuery1.Connection := FDConnection1;
右击FDConnection1 选Connection Editer
填好Driver ID: MSSQL
DataBase 、 User_name 、 Password、 Server 等信息。 OK!
在 public 声明
function TWebModule1.GetXMLData(str: string): TBytes;
然后在下在定义
function TWebModule1.GetXMLData(str: string): TBytes;
begin
with ClientDataSet1 do
begin
Close;
CommandText := str;
Open;
Result := ZCompressStr(XMLData);
Close;
end;
end;
这里的ZCompressStr函数是压缩ClientDataSet的XMLDATA以减少传输流量,客户端再进行解压即可。
记得加入USES zlib;
保存为 WDMForm.pas
三、我们在自动生成的ServerFrmImpl.pas里定义一个函数:
public
function GetData(str: string): TBytes; stdcall;
uses WDMForm;
function TDLMobileServer.GetData(SQL: string): TBytes;
var WebModuleClass: TWebModule1;
begin
WebModuleClass := TWebModule1.Create(nil);
try
Result := WebModuleClass.GetXMLData(SQL);
finally
WebModuleClass.Free;
end;
end;
这里的SQL是接收来自客户端的SQL语句。
4、我们在自动生成的ServerFrmIntf.pas里定义一个函数;
function GetData(str: string): TBytes; stdcall; //这里只需要声明
这里已经完成服务器端的设计,点RUN
再点Open Browser
我们在此可以看到服务器端定义的函数: GetData
点START 服务器就配置完成了。
下一章我们来读客户端的设计。