三层架构 android访问MSSQL数据库 程序 (服务器端)
? Delphi Xe5開始支持Android編程了。Delphi的春天終于來了!
? 我也是剛接觸XE,以前一直都在用D7,一直都在等它支持Android今天終于等來了,可以開始做項(xiàng)目了,雖然XE還存在很多BUG,但我相信,Embarcadero在努力,我們也在努力!
? 下面我們來做一個(gè)三層架構(gòu),訪問數(shù)據(jù)庫的程序。
? 一、服務(wù)器端
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函數(shù)是壓縮ClientDataSet的XMLDATA以減少傳輸流量,客戶端再進(jìn)行解壓即可。
記得加入U(xiǎn)SES zlib;
保存為 WDMForm.pas
?
三、我們?cè)谧詣?dòng)生成的ServerFrmImpl.pas里定義一個(gè)函數(shù):
? 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、我們?cè)谧詣?dòng)生成的ServerFrmIntf.pas里定義一個(gè)函數(shù);
? function GetData(str: string): TBytes; stdcall; //這里只需要聲明
這里已經(jīng)完成服務(wù)器端的設(shè)計(jì),點(diǎn)RUN
再點(diǎn)Open Browser
我們?cè)诖丝梢钥吹椒?wù)器端定義的函數(shù): GetData
點(diǎn)START 服務(wù)器就配置完成了。
下一章我們來讀客戶端的設(shè)計(jì)。
轉(zhuǎn)載于:https://www.cnblogs.com/drifer/p/3410546.html
總結(jié)
以上是生活随笔為你收集整理的三层架构 android访问MSSQL数据库 程序 (服务器端)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android save pictrue
- 下一篇: MySQL保留关键字