請教使用DataModule的觀念及規劃!! |
答題得分者是:ccchen
|
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
程式如同畫圖,個人畫風是不同的! 底下是依照我個人風格的說明,並非標準答案!
引言: (1) 在還沒有DM之前,都是將TABLE及SQL及DATASOURCE...等放在FORM中.... 而有了DM之後....請問您們都如何去分類把應當放在DM中管理的元件放到 DM的呢? ( 因為總不會將全部的相關元件全部放進去吧! ) DM中放TDataBase,或是與公用相關的TQuery/TTable (2) 如同第一點....是否也要將不同性質的DM給分開存放呢? 當系統龐大時,DM當然也要分類 (3) DATASOURCE這個元件..放在FORM還是DM中,會比較好呢? Form中比較好 (4) DM中的資料是不是一開始是應該關閉的...而當有需要時才打開呢? 就好 像FORM中的使用情形! 最好所有的Open動作都由程式去控制打開,包括DM (5) 如同第四點...請問您們在設計系統時,一開始是將有關資料的部份給關閉 ...還是說有那些的資料是一進入系統時就一直打開...直到系統結束的呢? 最好所有的Open動作都由程式去控制打開,包括DM 可能只有TDataBAse是一直開的 (6) 最後,可否藉由下面所寫的FORM,煩請大家回應一下您們將有關資料的部份 ,如TABLE...QUERY..DATABASE...DATASOURCE...等..是放在FORM還是DM呢? (A) 基本資料 : 如:客戶/廠商/產品....及系統相關....等等 (B) 單據處理 : 如:進貨單/銷貨單....等等 (含:所連結的客戶..等資料) (C) 其它.....: 因為不曉得還有那些情形必須放在DM...所以..用[其它]! TDataBase在DM,其它在Form,公用的相關Table/Query在DM(如參數檔) 若可以的話,最好連TQuery都是用動態產生的,Form中只有資料感知元件,資料連結的部份由程式自動產生,如此設計的Form彈性較大!~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
感謝站長及chih大大的回應.... 可否再多請教一件事....
就是拿客戶基本資料來說...
(1) 在客戶基本資料處理表單中,是不是應該將TABLE貼在FORM...因為這是一
個獨立的處理作業....是嗎?
(2) 在銷貨單處理表單中,因為客戶編號會關連到客戶基本資料中的名稱,因為
想要在銷貨單中顯示出客戶名稱,此時是否應在DM中開立一個客戶基本資料
的TABLE或QUERY...? 然後使用LOOKUPLIST去帶出來....!!
(3) 如同第二點...當銷貨單表單關閉時,在DM中的客戶基本資料是否也要關閉
呢?
(4) 如同第三點...假設今天是使用MDI FORM...如:已開啟了兩個表單,並都會
參考到DM中的客戶資料,,,那如果當某一個表單關閉時,此時客戶資料也關
閉了...那另一個表單在對客戶資料部份,不就會出現問題了嗎?
(5) 綜合2~4...請問...這個在DM中的客戶資料,,,其開啟及關閉的最好時機,
應該如何去拿捏呢?
(6) 如果說DM中的客戶資料是一直開啟的...那我是否可以直接將第一點中的
TABLE給拿掉...就直接使用DM中的TABLE呢? 再次感謝!!
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
我個人想法是
1. 若是使用.dbf或paradox等local DataBase, 單機小程式, 可儘量使用Table,且可將Table全放在一個DataModule中, Table一旦Open就不用Close,這樣效率最好. 2. Client-Server程式, 基本上不應用TTable,若要用BDE應選擇TQuery或BDEClientDataSet, 可將TDataBase元件放在MainForm上或單獨之DataModule上,至於各功能所須用到的Query,直接放在Form上就好, 全部RunTime Create更好, 用到的Data才open, 且只選擇須要的Data(i.e. 不要select *), 用完就close
畢竟DataModule只是沒有GUI的Form, 不管是DataModule還是Form都會變成Resource直接塞到最後的EXE中, 若沒有需要實在不必讓執行檔無緣無故長大 3. 若是N-Tier或是須考慮擴充性須將所有Business Rule和GUI分開,可考慮每一功能均有一DataMoude加一個Form 4. 所有Form, DM用到才開, 不用馬上Close應該是良好習慣吧,若是程式很小就不必Care吧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |