線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1872
推到 Plurk!
推到 Facebook!

請教使用DataModule的觀念及規劃!!

答題得分者是:ccchen
SKYSTAR
中階會員


發表:76
回覆:198
積分:64
註冊:2002-06-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-15 01:29:16 IP:211.74.xxx.xxx 未訂閱
各位先進好....    不好意思喲...又跑來向您們請教了.... 如主題....請教一下: ( >
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-15 01:35:31 IP:61.216.xxx.xxx 未訂閱
我想..要怎麼放..放哪些東西... 要看你的模組怎麼寫喔.. 如果你把很多東西模組化了... 那在Form上面放的可能就會比較少了... 不知道這樣清不清楚...^^
引言: 各位先進好.... 不好意思喲...又跑來向您們請教了.... 如主題....請教一下: ( > < face="Verdana, Arial, Helvetica">
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-15 08:05:48 IP:192.168.xxx.xxx 未訂閱
程式如同畫圖,個人畫風是不同的!    底下是依照我個人風格的說明,並非標準答案!
引言: (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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-15 13:33:21 IP:211.74.xxx.xxx 未訂閱
感謝站長及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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-15 17:23:47 IP:203.217.xxx.xxx 未訂閱
我個人想法是 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吧
系統時間:2024-05-14 16:36:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!