亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FireDAC開發(fā)DataSnap三層數(shù)據(jù)庫應(yīng)用

        2017-12-23 00:56:02劉之燁雷聚超胡靜宜
        科技創(chuàng)新與應(yīng)用 2017年36期

        劉之燁 雷聚超 胡靜宜

        摘 要:服務(wù)器與數(shù)據(jù)庫之間的連接直接影響了DataSnap三層數(shù)據(jù)庫應(yīng)用系統(tǒng)的傳輸效率?,F(xiàn)階段主流的連接技術(shù)為ADO與dbExpress。但是開發(fā)過程中存在著數(shù)據(jù)引擎兼容性不高、封裝繁瑣、連接邏輯復(fù)雜等問題。因此提出使用FireDAC數(shù)據(jù)引擎開發(fā)DataSnap三層C/S結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用。文章根據(jù)在Delphi xe10平臺的開發(fā)過程得出FireDAC數(shù)據(jù)引擎具有連接邏輯簡單,數(shù)據(jù)庫兼容性強(qiáng)等優(yōu)點(diǎn),更適合用于開發(fā)DataSnap三層數(shù)據(jù)庫應(yīng)用。

        關(guān)鍵詞:FireDAC; DataSnap技術(shù);三層C/S結(jié)構(gòu)

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

        引言

        三層C/S結(jié)構(gòu)較于傳統(tǒng)的兩層C/S結(jié)構(gòu)具有更好穩(wěn)定性、安全性、易維護(hù)性,同時也具有更快的響應(yīng)速度等優(yōu)點(diǎn)。因此在開發(fā)大型數(shù)據(jù)庫應(yīng)用系統(tǒng)的過程中,三層C/S結(jié)構(gòu)的應(yīng)用越來越普遍。

        Delphi是一個功能強(qiáng)大,基于Windows環(huán)境,面向?qū)ο蟮目梢暬瘧?yīng)用軟件開發(fā)工具。它結(jié)合了傳統(tǒng)的編程語言O(shè)bject Pascal和數(shù)據(jù)庫語言的強(qiáng)大功能,既可以用于傳統(tǒng)算術(shù)編程又可以用于數(shù)據(jù)庫編程。Delphi中的DataSnap技術(shù)體系,提供了客戶端和應(yīng)用服務(wù)器之間傳遞數(shù)據(jù)庫信息的機(jī)制,同時豐富的組件庫給程序的設(shè)計(jì)帶來極大的便利。Delphi已經(jīng)成為當(dāng)前最流行的C/S開發(fā)工具之一。

        開發(fā)DataSnap三層數(shù)據(jù)庫應(yīng)用的過程中,必須首先建立與數(shù)據(jù)庫之連接,它是應(yīng)用程序和后臺數(shù)據(jù)庫之間交換數(shù)據(jù)的前提。

        1 FireDAC基本原理

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

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

        在DataSnap架構(gòu)中要使用FireDAC的中央快儲功能,需要在應(yīng)用服務(wù)器使用TFDSchemaAdapter組件。而在FireDAC客戶端則需要使用TFDTableAdapter組件把客戶端TFDMemTable罪案中的數(shù)據(jù)從應(yīng)用服務(wù)器取回或是從客戶端把異動的數(shù)據(jù)更新回應(yīng)用層服務(wù)器。

        因此要使用FireDAC開發(fā)DataSnap應(yīng)用,需要下列步驟:

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

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

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

        (4)處理數(shù)據(jù)流(Stream Data)。

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

        2 三層數(shù)據(jù)庫應(yīng)用的實(shí)現(xiàn)過程

        2.1 創(chuàng)建數(shù)據(jù)庫

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

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

        2.2 創(chuàng)建DataSnap服務(wù)器

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

        s存放網(wǎng)絡(luò)服務(wù)相關(guān)的控件,Unit1.pas是服務(wù)器的主界面,ServerContainerUnit1.pas是我們需要進(jìn)一步開發(fā)的工程文件。

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

        apter、TFDQuery、TFDStanStorageJSONLink等組件。TFDStanStor

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

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

        (4)編譯運(yùn)行DataSnap服務(wù)器。

        2.3 創(chuàng)建DataSnap客戶端endprint

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

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

        GETXX()方法只需要呼叫FDStoredProc1的ExecProc()方法,F(xiàn)ireDAC就可以呼叫DataSnap服務(wù)器中指定的服務(wù)方法(GET),呼叫成功后DataSnap服務(wù)器回傳的數(shù)據(jù)回存儲在FDStoredProc1的第一個參數(shù)中,型態(tài)是ftBlob。創(chuàng)建一個TStringStream對象把FDStoredProc1的第一個參數(shù)內(nèi)容作為建構(gòu)元參數(shù),TStringStream對象的內(nèi)容就是回傳的結(jié)果,把TStringStream對象包含的數(shù)據(jù)流位置設(shè)定到起始位置,再通過FDMemTable1組件的LoadFromStream()方法從TStringStre

        am對象中讀取數(shù)據(jù)流并還原。

        (3)編寫代碼并執(zhí)行客戶端,點(diǎn)擊Button按鈕,數(shù)據(jù)庫中的信息已經(jīng)通過應(yīng)用層服務(wù)器傳輸?shù)娇蛻舳耍⒄故驹贚istView組件中。

        至此一個基于FireDAC的DataSnap三層數(shù)據(jù)庫應(yīng)用已經(jīng)搭建完成,進(jìn)一步的開發(fā)除了需要根據(jù)用戶需求完善客戶端界面外,還需要根據(jù)需求編寫對應(yīng)的應(yīng)用層業(yè)務(wù)邏輯,完成相應(yīng)的功能。

        3 結(jié)束語

        根據(jù)以上開發(fā)過程可以得出FireDAC有以下優(yōu)點(diǎn):

        (1)跨數(shù)據(jù)庫平臺。FireDAC作為一個通用數(shù)據(jù)訪問庫,用于開發(fā)與企業(yè)數(shù)據(jù)庫連接的多個設(shè)備的應(yīng)用程序。通過其強(qiáng)大的通用架構(gòu),F(xiàn)ireDAC可實(shí)現(xiàn)從Delphi到InterBase,SQLite的本機(jī)高速直接訪問。

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

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

        FireDAC技術(shù)和DataSnap技術(shù)相結(jié)合,為三層數(shù)據(jù)庫應(yīng)用的開發(fā)提供了良好的支持,為構(gòu)建滿足不同需求的多層C/S體系的數(shù)據(jù)庫應(yīng)用程序打下了良好基礎(chǔ)。定會成為日后開發(fā)三層數(shù)據(jù)庫應(yīng)用的主流趨勢。

        參考文獻(xiàn):

        [1]李文生.采用Delphi實(shí)現(xiàn)三層客戶/服務(wù)器數(shù)據(jù)庫應(yīng)用程序[J].計(jì)算機(jī)工程,2000(7):170.

        [2]張志強(qiáng).基于DataSnap技術(shù)實(shí)現(xiàn)三層C/S體系的數(shù)據(jù)庫應(yīng)用[J].軟件導(dǎo)刊,2011(10):167.

        [3]楊長春.Delphi程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2016.endprint

        神马影院午夜dy888| 亚洲精品国偷拍自产在线麻豆| 91精品国产色综合久久不| 亚洲国产精品av麻豆一区| 国产日本精品视频一区二区| 国产色欲av一区二区三区| 无码吃奶揉捏奶头高潮视频| 国产三级在线视频播放| 亚洲乱在线播放| 久久久国产精品五月天伊人| 日本伊人精品一区二区三区| 免费无码a片一区二三区| 99偷拍视频精品一区二区| 久久精品国产亚洲黑森林| 日本高清中文字幕二区在线| 丰满巨臀人妻中文字幕| 日本在线精品一区二区三区| 又长又大又粗又硬3p免费视频| 精品乱子伦一区二区三区| 午夜av内射一区二区三区红桃视| 中文字幕文字幕一区二区| 开心五月婷婷激情综合网| 玩50岁四川熟女大白屁股直播| 人人做人人妻人人精| 在线无码免费看黄网站| 久久精品国产亚洲av性瑜伽| 末成年女a∨片一区二区| 国产午夜精品一区二区三区视频| 一区二区视频资源在线观看| 看国产亚洲美女黄色一级片| 国产乱对白刺激视频| 无码人妻丰满熟妇片毛片| 久久狠狠高潮亚洲精品暴力打 | 欧美成人aaa片一区国产精品| 韩国19禁主播深夜福利视频| 亚洲女同成av人片在线观看| 亚洲一区二区一区二区免费视频| 青青草原综合久久大伊人精品| 少妇无码av无码一区| 亚洲精品国产综合一线久久| 欧美国产伦久久久久久久|