(1)生成DataSnap伺服器的架構
初學者都是呆子,還是用向導吧,主菜單“File”->“New”->“Other…”得到“New Items”向導對話框。見圖一。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yNxQDZkRDOyMzM0MTYwcjMzE2YwkTNihTYjljY4EDOw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
圖一、向導
一般選擇有視窗的Forms程式,如果是正式場合,建議Service程式。見 圖二。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yNxQDZkRDOyMzM0MTYwcjMzE2YwkTNihTYjljY4EDOw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
圖二、選擇應用類型
如果伺服器程式運作在Windows平台就選“VCLapplication”,如果要跨平台,還是選“FireMonkeyapplication”,但生成的檔案要大一些。見圖三。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yNxQDZkRDOyMzM0MTYwcjMzE2YwkTNihTYjljY4EDOw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
圖三、選擇應用基本庫源
預設TCP/IP為通訊協定,簡單快速,菜鳥專用的Sample Methods用于測試,見圖四。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yNxQDZkRDOyMzM0MTYwcjMzE2YwkTNihTYjljY4EDOw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
圖四、選擇通訊等參數
預設211端口,别忘了“Test Port”一下更健康,見圖五。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yNxQDZkRDOyMzM0MTYwcjMzE2YwkTNihTYjljY4EDOw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
圖五、測試端口
不要使用預設的“TComponent”,而用TDSServerModule作為資料服務提供主體,非常友善以後變更為能掙錢的Service應用服務。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yNxQDZkRDOyMzM0MTYwcjMzE2YwkTNihTYjljY4EDOw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
圖六、選擇服務模式
Finish這個向導後,硬碟一陣轟鳴,自動生成了工程及其三個主檔案,圖七:
ServerContainerUnit1.pas放的是網絡服務相關控件,非高手莫入。
ServerMehtodsUnit1.pas就是我們第二步主要的活動場所。
我們來做個簡單的資料庫連接配接測試.
在上個學習的基礎上,我們打開Server的ServerMethodUnit1子產品,在設計界面放上三個控件:
SQLConnection1: TSQLConnection;
SQLDataSet1: TSQLDataSet;
DataSetProvider1: TDataSetProvider;
注意:
1、如果使用sa,如果沒有密碼的話會連接配接失敗,需要建立一個帶密碼的使用者或者将sa設定上密碼.
2、如果連接配接SQL Server時報告錯誤,可以嘗試安裝一下MS SQL Server 2008 Native Client,這個包同樣可以應用在SQL Server 2000中.
然後将SQLDataSet1的SQLConnection設定為SQLConnection1,并且在CommandText中輸入指令,比如:select * from jobs (連接配接到pubs資料庫),設定Active為True.
最後一步,将DataSetProvider1的DataSet設定為SQLDataSet1.
OK,我們的伺服器就設計完成了,編譯運作.
接下來, 我們來做一個用戶端.在以前的DataSnap版本中(D7中好像是這樣,其他版本沒有測試),像剛才我們設計的東西要放在Remote Data Modul中,在連接配接的時候要使用DCOMConnection或者SocketConnection,現在不用了.
再打開我們上次設計的用戶端程式,在窗體上放置幾個資料處理控件,來吧,像一般的資料應用程式那樣放入資料感覺控件:
DBGrid1: TDBGrid;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
然後我們要放入其他連接配接遠端應用要用到的控件:
SQLConnection1: TSQLConnection;
DSProviderConnection1: TDSProviderConnection;
設定SQLConnection1的Driver為DataSnap,Connected為True(注意運作伺服器),設定DSProviderConnection1的SQLConnection為SQLConnection1,注意,下面是很重要的一步,即在ServerClassName中輸入TServerMethods1,不知道Delphi為什麼沒有自動取出,這裡需要手工錄入.
再設定ClientDataSet1的RemoteServer為DSProviderConnection1,現在就可以在ProviderName中選擇DataSetProvider1了,如果沒有上面那一步,這裡将沒有列出.
好了,設定ClientDataSet1的Active為True,設定DataSource1的DataSet為ClientDataSet1,設定DBGrid1的DataSource為DataSource1(這些活都太熟了吧?)
我們已經可以在網格中看到取回的資料來了.