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