個可執行文件及MIDAS.DLL,而移到NT服務器上的DataMoule則變成一個COM程序(Remote DataModule).
注:前臺一定要把MIDAS.DLL發布到系統目錄下.
(1)前臺程序會通過調用應用程序服務器提供的方法(接口)提出一個請求
應用程序服務器會響應這個請求,傳送一個相應的SQL命令到后臺數據庫,而后臺數據庫會把執行SQL命令產生的DataSet返回給應用程序服務器.
注:Delphi提供了Type Library來幫助應用程序服務器定義COM方法(接口)
(2)NT服務器上的COM程序是通過中間軟件(dbExpress,ADO,BDE,SQL Link)傳送SQL到后臺數據庫.
當應用程序服務器要把讀取到的DataSet傳送給前臺時,就必須利用DCOM的機制來進行.Delphi提供的TDataSetProvider組件就會把讀取到的DataSet壓縮并且分割成一段一段的數據包,通
過DCOM或TCP/ip傳給前臺.
注:Delphi提供了RemoteDataModule向導來幫你產生COM程序的結構.
由于Delphi的程序具有傳送DataSet的特殊機制,所以Delphi也實現了一個接口叫做IProvider(即TDataSetProvider),來幫助應用程序服務器上的COM程序發送DataSet數據.
(3)前臺程序與NT服務器上的COM程序是通過DCOM的機制互相溝通
前臺的應用程序是通過MIDAS.DLL和應用程序服務器相互溝通,前臺的MIDAS.DLL會把接收到的應用程序服務器發過來的數據包再還原成DataSet,丟給前臺程序中的TClientDataSet組件.
注:前臺程序必須提供相應的TClientData組件來和應用程序服務器上的每個IProvider(即TDataSetProvider)對應.用戶修改前臺數據時,修改的只是Cache(緩存)在前臺的Dataset,最后
要通過TClientData.ApplyUpdate方法來把前臺變動的數據寫回到后臺數據庫中.
新聞熱點
疑難解答
圖片精選