轉:https://blog.csdn.net/a00553344/article/details/51670486數據庫
1. 一個典型的DataSnap服務器至少須要三個控件:服務器
TDSServer: DataSnap的邏輯核心控件,控制服務器的運行。app
TDSServerClass: DataSnap服務端服務導出控件,經過OnGetClass事件來導出服務端的類及方法供客戶端的遠程調用。框架
做爲服務端導出給客戶端遠程調用的類須要知足如下兩個條件:函數
從TComponent類派生。ui
須要有{$METHODINFOON}指令。加密
一個通信控件:採用TCP的話,選用TDSTCPServerTransport控件,採用HTTP的話,選用IDSHTTPService控件。.net
2. 客戶端利用一個TSQLConnection控件,Driver設置爲Datasnap後,點右鍵就能夠從服務端導入能夠遠程調用的類及方法。orm
這一篇詳細描述如何利用delphi提供的嚮導自動建立一個DataSnap服務器。blog
File > New > Other > DelphiProjects [or C++Builder Projects] > DataSnap Server > DataSnap Server
1. 三種選擇:
Forms Application : 標準的Forms類型V應用程序。
Console Application: 工做臺應用程序。
Service Application: 服務類型的應用程序。
這裏選擇第一種Forms Application
2. 二種選擇:
VCL application : 傳統的VCL框架
FireMonkey application: 跨平臺的FireMonkey框架
這裏選擇VCL application,由於DataSnap服務端一般運行在Windows服務器上,因此選擇VCL框架便可。
3. 這裏包括通信協議、遠程調用是否須要受權。。。。等等,這裏先按默認的設置。
Protocols:服務端和客戶端之間的通信協議。這裏能夠多選,表示服務端同時支持多種通信協議。
Authentication:受權或驗證。若是勾選,表示客戶端鏈接到服務端的時候須要身份驗證。帶有Authentication的服務端會增長一個驗證控件TDSAuthenticationManager。
Server Methods Class:服務器方法類,由服務端導出給客戶端遠程調用。一般服務端要實現的供客戶端遠程調用的函數及方法都會放在這個類裏面,再經過TDSServerClass的OnGetClass事件導出給客戶端遠程調用。
Filters:在客戶端和服務端之間過濾(加密或是壓縮)數據。勾選後,一般會在TDSTCPServerTransport和IDSHTTPService控件的Filters屬性中增長加密和壓縮的項。注意除了設置服務端TDSTCPServerTransport和IDSHTTPService控件Filters屬性外,也須要在客戶端指定一個相應的過濾器。
JavaScript Files:在生成DataSnap REST Server的時候,生成JavaScript接口文件,供客戶端調用使用。
Mobile Connectors:提供移動端調用服務端導出類的一些接口文件。
4. 選擇TCP的通信端口,按默認設置。
5. 用於遠程調用的服務器端函數方法所在類的實現方式(繼承方式,從不一樣的祖先類繼承,具有了不一樣的功能)。
TComponnet:從TComponent類繼承,全部導出給客戶端使用的功能都須要進一步具體實現,由於TComponent類幾乎不提供什麼功能。
TDataMoudle: 從TDataMoudle類繼承,能夠放入非可視化控件,好比數據庫訪問控件。這樣,服務端就能夠直接利用這些控件訪問數據庫服務器。可是,訪問數據庫的鏈接,數據和數據集不一樣直接導出給客戶端使用,須要服務端進一步實行將數據傳輸給客戶端使用。
TDSServerModule: 從TDSServerModule類繼承,它既包含了TDataModule的功能,又能夠直接將與數據庫服務器的鏈接和數據集直接暴露給客戶端調用,客戶端能夠很是方便的經過DataSnap服務端直接訪問數據庫服務器。這個方式普遍應用於客戶端是移動端的應用中,由於訪問各類數據庫須要數據庫客戶端的驅動或是函數,移動端一般都沒有或是安裝不了這些數據庫客戶端驅動,因此將這些數據庫客戶端驅動都安裝到DataSnap服務端上去,由DataSnap服務端來實現數據的訪問和存取,而客戶端則直接使用DataSnap服務端導出的數據庫鏈接和數據集來訪問和存取數據庫,同時客戶端並不須要安轉各類數據庫的客戶端驅動。
6. 選擇Finish,這樣一個DataSnapServer就創建了。
————————————————
版權聲明:本文爲CSDN博主「a00553344」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/a00553344/article/details/51670486