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

主站蜘蛛池模板: 亚洲国产天堂久久综合| 精品国产自| 久久久亚洲国产美女国产盗摄| 在线观看亚洲人成网站| 中文字幕第1页在线播| 波多野结衣在线se| 制服丝袜国产精品| 精品天海翼一区二区| 亚洲国产欧美国产综合久久| 日本免费a视频| 美女无遮挡免费视频网站| 久久久精品无码一二三区| 99re精彩视频| 91麻豆国产精品91久久久| 亚洲天堂日韩在线| 青青操视频在线| 午夜视频www| 国产成人乱无码视频| 国产成人1024精品下载| 四虎国产永久在线观看| 亚洲香蕉在线| 99久久精品免费看国产电影| 色综合久久综合网| 91色在线视频| 国产婬乱a一级毛片多女| 一级做a爰片久久毛片毛片| 亚洲三级影院| 亚洲黄色高清| 亚洲AⅤ无码国产精品| 色婷婷亚洲十月十月色天| 美女被狂躁www在线观看| 欧洲成人免费视频| 免费一极毛片| 99久视频| 国产精品视频猛进猛出| 国产尤物在线播放| 91久久精品日日躁夜夜躁欧美| 亚洲人成网站在线播放2019| 91精品专区国产盗摄| 99成人在线观看| 日韩国产一区二区三区无码| 好紧太爽了视频免费无码| 亚洲成人一区在线| 成人亚洲天堂| 免费A∨中文乱码专区| 精品无码日韩国产不卡av| 无码高清专区| 黄色不卡视频| 都市激情亚洲综合久久| 亚洲看片网| 色爽网免费视频| 97国产在线观看| 99这里只有精品在线| 中文字幕在线观| 成人福利免费在线观看| 少妇精品网站| 高清国产va日韩亚洲免费午夜电影| 亚洲aⅴ天堂| 国产黄色免费看| 国产精品无码一二三视频| 女人18毛片水真多国产| 综合久久久久久久综合网| 亚洲天堂久久新| 伊在人亚洲香蕉精品播放 | 狼友视频一区二区三区| 免费A级毛片无码免费视频| 日韩色图区| 又黄又湿又爽的视频| 综合色天天| 女人毛片a级大学毛片免费| 亚洲男人在线| 国产熟睡乱子伦视频网站| 中文精品久久久久国产网址| 无遮挡国产高潮视频免费观看 | 在线看片中文字幕| 国产成人高清在线精品| 欧美在线导航| 99人妻碰碰碰久久久久禁片| 四虎永久在线精品国产免费| 欧美精品伊人久久| 久久亚洲中文字幕精品一区| 波多野结衣无码视频在线观看|