三层架构 android访问MSSQL数据库 程序 (服务器端)
? 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 服務器就配置完成了。
下一章我們來讀客戶端的設計。
轉載于:https://www.cnblogs.com/drifer/p/3410546.html
總結
以上是生活随笔為你收集整理的三层架构 android访问MSSQL数据库 程序 (服务器端)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android save pictrue
- 下一篇: Linux中如何让进程(或正在运行的程序