這裡需要做幾個說明:
1) 在客戶端,數據控件一般要和Datasource相連,但在服務器端,主要要 考慮數據和接口相連,Delphi 5.0以上版本規定,使用DataSetProvider
就不需要再針對每個控件做Export(導出)操作,而是由應用程序服務器自 動幫前台查找這就簡化了程序和維護量。但是,前台每個DataSet 必須有個
對應的DataSetProvider 才行。
2)關於建立COM 時的幾個選項現在說明一下:
A) Instancing :
Multiple Instance: 一個應用程序可以被多個前台程序調用使用,啟動和執 行的效率比較高,不耗費服務器太多的資源,管理上也比較方便。
Single Instance: 一個應用程序只能被一個前台程序調用,由於沒有排隊問 題,所以當某個查詢崩潰時,不會影響其它的查詢,但是,一個前台調用必然在 服務器上建立一個應用程序服務器的Process (進程),占用資源比較多,影響 服務器整體執行效率。
Internal: 建立一個In-Process的COM 程序(也就是DLL文件的格式),由 於Mult-TIEr 結構中,應用程序服務器和前台程序是放在不同的地方的,兩台機 器的兩個程序就無法共享同一個Process,所以很少設置成Internal模式的。
B) Threading Model:
Apartment: 每個實例一次只能處理一個前台發出的Request(請求),如果 同時建立多個In-Process COM 程序,那每個COM 程序就會有一個現程服務,所 以數據是安全的,當然要注意某些共享變量的沖突。
Single: 單線程,循環工作,不會出現多任務的問題。
Free : 可以讓Remote Data Module自己處理多線程問題,客
戶端程序需要用多線程方法來處理。
Both : 和Free幾乎相同,但對應前台界面的Callback都是連
續的。
如果注冊後無法確認是否注冊成功,可以用C:\WINNT\Regedit.exe檢查。
客戶端程序
在Two-Tier模式中,客戶端(Client)程序是直接和服務器的數據源相連的, 而Multi-TIEr模式,多個客戶端連接的是一個應用程序服務器,因為收費是按客 戶端數計算的,所以,數據庫的使用費用比較低。
下面的例子只提供了數據庫操作的最基本的功能,主要說明數據源的連接方 法。
1)建立一個普通的工程。
2)放置一個TDCOMConnrction控件(在Datasnap頁),屬性:
在本機注冊時,可直接設置以下屬性:
ServerName:應用程序服務器注冊名(pro1.pc121)
Connected=true 激活
這時你可以看到服務器端的COM 程序被激活了。
如果在網絡上調試,需要給出服務器名:
ComputerName:服務器名(自動給出網上鄰居)
注意:
ServerGUID的GUID值是自動給出的。