999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FireDAC開發DataSnap三層數據庫應用

2017-12-23 00:56:02劉之燁雷聚超胡靜宜
科技創新與應用 2017年36期

劉之燁 雷聚超 胡靜宜

摘 要:服務器與數據庫之間的連接直接影響了DataSnap三層數據庫應用系統的傳輸效率。現階段主流的連接技術為ADO與dbExpress。但是開發過程中存在著數據引擎兼容性不高、封裝繁瑣、連接邏輯復雜等問題。因此提出使用FireDAC數據引擎開發DataSnap三層C/S結構的數據庫應用。文章根據在Delphi xe10平臺的開發過程得出FireDAC數據引擎具有連接邏輯簡單,數據庫兼容性強等優點,更適合用于開發DataSnap三層數據庫應用。

關鍵詞:FireDAC; DataSnap技術;三層C/S結構

中圖分類號:TP311 文獻標志碼:A 文章編號:2095-2945(2017)36-0120-02

引言

三層C/S結構較于傳統的兩層C/S結構具有更好穩定性、安全性、易維護性,同時也具有更快的響應速度等優點。因此在開發大型數據庫應用系統的過程中,三層C/S結構的應用越來越普遍。

Delphi是一個功能強大,基于Windows環境,面向對象的可視化應用軟件開發工具。它結合了傳統的編程語言Object Pascal和數據庫語言的強大功能,既可以用于傳統算術編程又可以用于數據庫編程。Delphi中的DataSnap技術體系,提供了客戶端和應用服務器之間傳遞數據庫信息的機制,同時豐富的組件庫給程序的設計帶來極大的便利。Delphi已經成為當前最流行的C/S開發工具之一。

開發DataSnap三層數據庫應用的過程中,必須首先建立與數據庫之連接,它是應用程序和后臺數據庫之間交換數據的前提。

1 FireDAC基本原理

FireDAC不使用IAppServer接口,而是把DataSnap服務器當作API來呼叫。客戶端使用TFDConnection組件通過TCP/IP或HTTP/HTTPS協議連接使用FireDAC開發的DataSnap服務器,使用TFDStoredProc組件呼叫服務器API。

如果客戶端呼叫的API需要回傳數據,那么FireDAC會以Stream的格式傳遞數據,如果要對數據進行包含異動的工作,那么可以搭配使用FireDAC的中央快儲功能來幫助程序員對數據進行異動。

在DataSnap架構中要使用FireDAC的中央快儲功能,需要在應用服務器使用TFDSchemaAdapter組件。而在FireDAC客戶端則需要使用TFDTableAdapter組件把客戶端TFDMemTable罪案中的數據從應用服務器取回或是從客戶端把異動的數據更新回應用層服務器。

因此要使用FireDAC開發DataSnap應用,需要下列步驟:

(1)開發使用FireDAC的DataSnap服務器,并使用FireDAC中央快儲功能。

(2)開發使用FireDAC的客戶端,使用TFDConnection連接服務器。

(3)使用TFDStoredProc組件呼叫服務器API。

(4)處理數據流(Stream Data)。

(5)使用TFDStoredProc組件呼叫服務器的API把異動數據回傳給FireDAC的DataSnap服務器,再由FireDAC的中央快儲功能把數據更新回數據庫。

2 三層數據庫應用的實現過程

2.1 創建數據庫

(1)在Mysql中創建名為XATU的數據庫,在數據庫中創建TEST表,增加兩列,列名分別為“xm”和“xh”并錄入信息作為查詢之用。

(2)將MySQL的動態鏈接庫文件libmysql.dll存放到C:\WINDOWS\SYSTEM32目錄下。

2.2 創建DataSnap服務器

(1)主菜單“File”->“New”->“Other”在“New Items”對話框中選擇DataSnap Server,啟動向導。“Project Type”選擇“Forms Application”、 “Application Type”選擇“VCL Application” 默認TCP/IP為通訊協議,測試端口211,選擇TDataModule 作為服務器端API類別。完成后,生成三個工程文件ServerContainerUnit1.pas、Unit1.pas。ServerMethodsUnitsUnit1.pa

s存放網絡服務相關的控件,Unit1.pas是服務器的主界面,ServerContainerUnit1.pas是我們需要進一步開發的工程文件。

(2)打開ServerMethodsUnitsUnit1.pas,加入TFDSchemaAd

apter、TFDQuery、TFDStanStorageJSONLink等組件。TFDStanStor

ageBinLink和TFDStanStorageJSONLink的作用是讓FireDAC可以處理2進制(TCP/IP)和JSON(Http)格式的數據。

(3)進入Code單元,在Public下添加代碼“function GET:TStream;”。添加的GET方法可以讓客戶端查詢信息。FireDAC中要在客戶端和應用服務器之間傳遞數據,只需要傳遞TStream形態的數據。GET()方法首先建立一個TMemoryStream對象,再開啟FDQuery1組件取得數據,然后把FDQuery1組件中的數據對象通過TMemoryStream類中的SaveToStream方法拷貝到TMemoryStream對象中,最后把TMemoryStream對象回傳給客戶端。

(4)編譯運行DataSnap服務器。

2.3 創建DataSnap客戶端endprint

(1)主菜單“File”->“New”->“Muti-Device Application”,在窗體中添加TFDConnection、TFDGUIxWaitCursor、TFDPhysDSDriverLink等組件。

(2)在主界面的Button1的OnClick事件中呼叫GETXX()方法和SHOWXX()方法。GETXX方法獲取數據,SHOWXX()方法展示數據。

GETXX()方法只需要呼叫FDStoredProc1的ExecProc()方法,FireDAC就可以呼叫DataSnap服務器中指定的服務方法(GET),呼叫成功后DataSnap服務器回傳的數據回存儲在FDStoredProc1的第一個參數中,型態是ftBlob。創建一個TStringStream對象把FDStoredProc1的第一個參數內容作為建構元參數,TStringStream對象的內容就是回傳的結果,把TStringStream對象包含的數據流位置設定到起始位置,再通過FDMemTable1組件的LoadFromStream()方法從TStringStre

am對象中讀取數據流并還原。

(3)編寫代碼并執行客戶端,點擊Button按鈕,數據庫中的信息已經通過應用層服務器傳輸到客戶端,并展示在ListView組件中。

至此一個基于FireDAC的DataSnap三層數據庫應用已經搭建完成,進一步的開發除了需要根據用戶需求完善客戶端界面外,還需要根據需求編寫對應的應用層業務邏輯,完成相應的功能。

3 結束語

根據以上開發過程可以得出FireDAC有以下優點:

(1)跨數據庫平臺。FireDAC作為一個通用數據訪問庫,用于開發與企業數據庫連接的多個設備的應用程序。通過其強大的通用架構,FireDAC可實現從Delphi到InterBase,SQLite的本機高速直接訪問。

(2)訪問快速。FireDAC數據集建立在強大的數據訪問引擎之上。這種輕便,有效和靈活的引擎可以直接在應用程序中使用,并且是數據集API的強大基礎。

(3)良好的兼容性。FireDAC可以使用TDataSet后代類,包括TFDQuery,TFDMemTable,TFDStoredProc和TFDTable。同時數據集類與原始BDE數據集和ClientDataSet高度兼容。

FireDAC技術和DataSnap技術相結合,為三層數據庫應用的開發提供了良好的支持,為構建滿足不同需求的多層C/S體系的數據庫應用程序打下了良好基礎。定會成為日后開發三層數據庫應用的主流趨勢。

參考文獻:

[1]李文生.采用Delphi實現三層客戶/服務器數據庫應用程序[J].計算機工程,2000(7):170.

[2]張志強.基于DataSnap技術實現三層C/S體系的數據庫應用[J].軟件導刊,2011(10):167.

[3]楊長春.Delphi程序設計教程[M].北京:清華大學出版社,2016.endprint

主站蜘蛛池模板: 国产亚洲精品无码专| 99久久婷婷国产综合精| 九色在线观看视频| 成人久久精品一区二区三区 | 永久免费精品视频| 在线无码九区| 精品国产网| 精品国产免费观看一区| 国产高清在线精品一区二区三区| 亚洲一级毛片| 日韩精品资源| 久久精品国产亚洲麻豆| 色九九视频| 亚洲成A人V欧美综合天堂| 国产精品香蕉在线| av天堂最新版在线| 91美女视频在线| 国产福利一区视频| 免费一看一级毛片| 国产男人天堂| 成人综合网址| 在线视频亚洲欧美| 在线亚洲精品自拍| 亚洲美女一区| 日韩成人高清无码| 久热中文字幕在线| 国产精品福利一区二区久久| 国产精品私拍99pans大尺度 | 久久不卡精品| 色偷偷男人的天堂亚洲av| 伊人久久大线影院首页| 首页亚洲国产丝袜长腿综合| 亚洲国产理论片在线播放| 日本道综合一本久久久88| 亚洲av日韩av制服丝袜| 尤物视频一区| 亚洲AV无码精品无码久久蜜桃| 四虎国产成人免费观看| 日韩欧美中文| 国产97视频在线| 中文字幕永久在线观看| 一级黄色网站在线免费看| 热久久国产| 国产精品第一区| 91精品免费久久久| 91精品久久久无码中文字幕vr| 国产制服丝袜无码视频| 日韩AV手机在线观看蜜芽| 亚洲丝袜第一页| 露脸一二三区国语对白| 亚洲香蕉伊综合在人在线| 欧美日韩国产在线人成app| 97综合久久| 欧美在线观看不卡| 亚洲国产精品日韩欧美一区| 91在线视频福利| 国产综合网站| 激情午夜婷婷| 多人乱p欧美在线观看| 97久久超碰极品视觉盛宴| 国产 日韩 欧美 第二页| 国产91av在线| 夜夜操国产| 波多野结衣视频网站| 欧美无专区| 国产大全韩国亚洲一区二区三区| 日本爱爱精品一区二区| 色婷婷成人网| 91色国产在线| 澳门av无码| 色综合狠狠操| 久久综合五月婷婷| 国产手机在线观看| 97国内精品久久久久不卡| 国产91在线|日本| 一本久道久久综合多人 | 日本在线国产| 五月婷婷综合色| 欧美精品亚洲精品日韩专区| 日本在线亚洲| 最新国产精品第1页| A级毛片高清免费视频就|