全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1366
推到 Plurk!
推到 Facebook!

關閉客戶端ClientDataSet時,怎樣將中間層相應DataSetProvider的數據集也關閉

尚未結案
dialog
一般會員


發表:33
回覆:18
積分:10
註冊:2002-09-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-23 20:14:48 IP:218.188.xxx.xxx 未訂閱
關閉客戶端的ClientDataSet時,怎樣將中間層相應的DataSetProvider的數據集也自動關閉.
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-23 20:25:09 IP:218.16.xxx.xxx 未訂閱
不用作處理的。 若你沒改變預設值其本上每個客戶端是使用獨立的 Thread 創建獨立的 DataMod 的。客戶端關閉時對應的 DataMod 會自動關閉。 一般來說中間層的 dataset 設計時不用開啟,有連線時會自動開啟的了,CleintDataSet close 時相應的 dataset 亦會 close 的。
dialog
一般會員


發表:33
回覆:18
積分:10
註冊:2002-09-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-24 09:02:52 IP:218.188.xxx.xxx 未訂閱
遠程數據模塊上有一個AdoQuery1連到sql server,和一個DataSetProvider1, 在Form1上有DBGrid1和DataSoure1,數據集為遠程數據模塊上的AdoQuery1. 客戶端的ClientDataSet1連到DataSetProvider1. A. 當ClientDataSet1.Active:=True時,客戶端和服務端的DBGrid中都可以 到已獲到數據 B. 當ClientDataSet1.Active:=False時,客戶端的DBGrid關閉,而服務端的DBGrid仍然有數據,可見服務端的AdoQuery1並沒有關閉 C. 好像隻有當DCOMConnection1.enabled:=False時(也就是客戶端退出),服務端的AdoQuery1才會關閉。 我並沒有改變預設值,服務端都是自動激活的, 按照這樣,如果服務端提供了很多DataSetProvider,客戶端打開過很多不同的ClientDataSet的話,那服務端不就佔很大的內存!這還隻是服務端為一個客戶端維護的一個Instance. 如果每次DCom都斷開的話,那第一次ClientDataSet.Open就會很慢。 能不能在以上的B時,也能將服務端的AdoQuery1也關閉?
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-24 09:43:30 IP:218.16.xxx.xxx 未訂閱
我想應是你服務端的元件防止了 dataset 關閉 我的測試方法是 : 1. 在服務端不加入任何感知元件只加入一個Memo 2. 在所有DataSet 的 AfterOpen 加入 : Form1.Memo1.Lines.Add(DataSet.Name ' opened at ' FormatDateTime('yyyy/mm/dd hh:nn:ss',now)); 3. 在所有DataSet 的 AfterClose 加入 : Form1.Memo1.Lines.Add(DataSet.Name ' closed at ' FormatDateTime('yyyy/mm/dd hh:nn:ss',now)); 在客戶端的ClientDataSet測試結果 : 1. 若 PacketRecords 設成 -1 (即時接受所有記錄),服務端的 DataSet 開啟後傳送後立即關閉,不用等客戶端的CDS關閉。 2. 若 PacketRecords 設成 0 (不傳送記錄只傳送meta data),服務端的 DataSet 開啟後不會自動關閉,CDS關閉後服務端的 DataSet 便關閉。 3. 若 PacketRecords 設成 >0 ,服務端的 DataSet 開啟後若還有未傳送的記錄便不會關閉,一旦所有記錄已傳送立刻關閉。 這應是合理且很有效率的做法。 註:我是使用DBX的,BDE也測試過也是一樣,我以前測試過ADO發覺很多問題後一向不使用ADO連ADO元件亦刪了所以沒試ADO。
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-04-30 13:45:18 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-04-19 19:15:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!