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

請教有關DataModule的問題

答題得分者是:T.J.B
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-28 13:30:27 IP:61.220.xxx.xxx 未訂閱
請問各位前輩,小弟的程式中,原本每個form裡所用ado元件都是各自獨立去拉元件,如果我要用DataModule來作管理,請問dataset的元件放在DataModule上和放在各自的from上有何差別??哪個方式會比較好??
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-28 15:31:14 IP:61.220.xxx.xxx 未訂閱
就我的了解 放在DataModule會比較好 差別在於 1:方便管理 2:Use unit時只須use此DataModule 3:程式碼較清楚 回首來時路 也無風雨也無晴~~@.@
------
天行健
君子當自強不息~~@.@
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-28 15:37:08 IP:61.220.xxx.xxx 未訂閱
那StoredProc、Updatesql元件是否也是放在DataModule上ㄋ??
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-28 17:49:48 IP:61.220.xxx.xxx 未訂閱
沒有錯 回首來時路 也無風雨也無晴~~@.@
------
天行健
君子當自強不息~~@.@
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-28 18:15:05 IP:61.220.xxx.xxx 未訂閱
再請教前輩一個問題 當我開啟程式1之後,在開啟程式2的時候,會出現一個錯誤訊息, err:當物件開啟時,不允許操作, 我想應該是兩個程式同時共用一個DataModule中的元件,導致產生錯誤,請問這該如何解決ㄋ?? 是不是該把dataset等元件拉回到form上?? 發表人 - yabula 於 2002/10/28 18:27:05
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-10-28 19:31:05 IP:61.66.xxx.xxx 未訂閱
引言: 那StoredProc、Updatesql元件是否也是放在DataModule上ㄋ??
插花~! 使用DATAMODULE會有一個問題(在DELPHI7不知是否有改善) 如果你的FORM有引用DATAMODULE的欄位, 如 DBEDIT, DBCOMBOBOX...等資料感知元件, 當你在開啟這個專案的FORM時, 如果未先開啟此FORM所需要的DATAMODULE程式, 而直接先開啟FORM, 同時顯示在螢幕後, 你可以發現在這些資料感知元件的 PROPERITY的DATASOURCE會變成空白, 如果你再執行存入那就會造成該FORM的DATASOURCE消失, 雖然重新再設定就好了, 但是我有一個經驗就是我的FORM放了一百多個感知元件, 重新指回DATAMODULE累死人!
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-10-29 09:13:58 IP:61.220.xxx.xxx 未訂閱
感謝前輩分享經驗`````好在小弟的資料感知元件都是動態讀取設定,我想應該沒有這個問題`````
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-10-29 09:57:24 IP:210.202.xxx.xxx 未訂閱
引言: 使用DATAMODULE會有一個問題(在DELPHI7不知是否有改善) 如果你的FORM有引用DATAMODULE的欄位, 如 DBEDIT, DBCOMBOBOX...等資料感知元件, 當你在開啟這個專案的FORM時, 如果未先開啟此FORM所需要的DATAMODULE程式, 而直接先開啟FORM, 同時顯示在螢幕後, 你可以發現在這些資料感知元件的 PROPERITY的DATASOURCE會變成空白, 如果你再執行存入那就會造成該FORM的DATASOURCE消失, 雖然重新再設定就好了, 但是我有一個經驗就是我的FORM放了一百多個感知元件, 重新指回DATAMODULE累死人!
我想 D7 是不會改這個問題吧! 基本上這是看法上的問題, 我有一個朋友是用 VB 的, 開一個 Project 要 10 分鐘左右, 因為 VB 會將所有的 Form 全部開啟. Delphi 為了避免此問題, 只開起您指定的 Form, 但是卻會發生您說的問題. 如果已經存檔請自己將 .~pas 及 .~dfm 備份檔(Delphi 會自動備份存檔前的程式) rename 回來即可. 不過最好養成先將所有的 DATAMODULE 開啟的習慣. 如果怕麻煩每次都要開啟那多 Form 可以設定 Tools -> Environment Options -> Project Desktop 勾選, 每次進 Delphi 後就會自動開啟您前次 Editing Project and Form. 但是這樣設定後 Delphi 有時會看不到 IDE (不是常發生), 這時只要將 C:\Program Files\Borland\Delphi5\Bin\delphi32.dsk 刪除, 再進 Delphi 即可.
------
將問題盡快結案也是一種禮貌!
frankiech
中階會員


發表:7
回覆:78
積分:52
註冊:2002-08-29

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-10-29 12:06:23 IP:210.241.xxx.xxx 未訂閱
引言: 插花~! 使用DATAMODULE會有一個問題(在DELPHI7不知是否有改善) 如果你的FORM有引用DATAMODULE的欄位, 如 DBEDIT, DBCOMBOBOX...等資料感知元件, 當你在開啟這個專案的FORM時, 如果未先開啟此FORM所需要的DATAMODULE程式, 而直接先開啟FORM, 同時顯示在螢幕後, 你可以發現在這些資料感知元件的 PROPERITY的DATASOURCE會變成空白, 如果你再執行存入那就會造成該FORM的DATASOURCE消失, 雖然重新再設定就好了, 但是我有一個經驗就是我的FORM放了一百多個感知元件, 重新指回DATAMODULE累死人!
會嗎?我好像沒發生過. 不過,我習慣是先在 Project/Options 的Auto-Create Forms 將DataModule的Form第一個Create起來.
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-10-29 14:25:52 IP:61.220.xxx.xxx 未訂閱
嗯嗯````再請教各位前輩``` 小弟的程式是Client/Server的架構 如果DataModule中不管有多少個TADOConnection,從效能監視器中,可以查出1個人登入系統,user connections 的數量只有1,請問這裡個connections計算基準是??
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-10-29 15:19:14 IP:61.220.xxx.xxx 未訂閱
以GUID 計算 回首來時路 也無風雨也無晴~~@.@
------
天行健
君子當自強不息~~@.@
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-10-29 15:38:37 IP:61.220.xxx.xxx 未訂閱
[quote] 以GUID 計算 對不起```請問GUID是什ㄇ??
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#13 引用回覆 回覆 發表時間:2002-10-29 16:37:24 IP:61.220.xxx.xxx 未訂閱
引言: [quote] 以GUID 計算 對不起```請問GUID是什ㄇ??
在comm元件裡 每一部電腦唯一的一組辨識碼 回首來時路 也無風雨也無晴~~@.@
------
天行健
君子當自強不息~~@.@
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#14 引用回覆 回覆 發表時間:2002-10-29 17:32:09 IP:210.202.xxx.xxx 未訂閱
引言: 對不起```請問GUID是什ㄇ??
在comm元件裡 每一部電腦唯一的一組辨識碼 [/quote] GUID 應該是每一元件裡唯一的一組辨識碼, 雖然他是用那部電腦的資料計算出來的, 但不同元件會有不同的 GUID, 其實您在 Delphi IDE 中按 [Shift] [Ctrl] [G] 每次都不同.
------
將問題盡快結案也是一種禮貌!
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#15 引用回覆 回覆 發表時間:2002-10-30 10:17:34 IP:61.220.xxx.xxx 未訂閱
小弟還有另一個問題請教, 小弟的程式中每一支程式都會用到DataModule的3個ADOConnection,DataModule會是auto create form ,請問一般ADOConnection的connectionstring和connected屬性會寫在DataModule oncreate會比較好,還是寫在其他的執行程式中ㄋ??
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#16 引用回覆 回覆 發表時間:2002-10-30 11:11:04 IP:61.66.xxx.xxx 未訂閱
引言: 小弟還有另一個問題請教, 小弟的程式中每一支程式都會用到DataModule的3個ADOConnection,DataModule會是auto create form ,請問一般ADOConnection的connectionstring和connected屬性會寫在DataModule oncreate會比較好,還是寫在其他的執行程式中ㄋ??
依個人意見 connectionstring 當然是寫在 datamodule上最好, 因為 string的內容並不會改變(除非你的程式有設定針對不同使用者進行登錄不同的權限使用data), 至於 connected則不一定, 因為當你連上後系統就會產生一些連接節點, 如果資料的IO不是那麼頻繁, 建議你需要時再connect, 但如果你的程式在一開始create出來後, 就希望一直保持在 open的狀況下, 準備隨時要進行IO的話, 那就寫在DATAMOUDLE吧! 不過我的經驗, OPEN行為儘量不要做在DATAMODULE上, 但不表示說寫在那裡不好, 這是個人的意見啦!
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#17 引用回覆 回覆 發表時間:2002-10-30 16:07:17 IP:61.220.xxx.xxx 未訂閱
感謝前輩提供意見```` 小弟的程式是Client/Server的架構 如果DataModule中若有3個TADOConnection,connectionstring 和connected都是在DataModule create時就已經與資料庫連結了,我的程式要一直保持與資料庫連結,但是所有個程式共用一個DataModule,所產生的user connections 的數量也會隨著程式開啟的數量倍增?? 開一支程式就有3個connection~~~~一直倍增下去還得了?? 請問有其他方式ㄇ??
frankiech
中階會員


發表:7
回覆:78
積分:52
註冊:2002-08-29

發送簡訊給我
#18 引用回覆 回覆 發表時間:2002-10-31 08:53:19 IP:210.241.xxx.xxx 未訂閱
引言: 感謝前輩提供意見```` 小弟的程式是Client/Server的架構 如果DataModule中若有3個TADOConnection,connectionstring 和connected都是在DataModule create時就已經與資料庫連結了,我的程式要一直保持與資料庫連結,但是所有個程式共用一個DataModule,所產生的user connections 的數量也會隨著程式開啟的數量倍增?? 開一支程式就有3個connection~~~~一直倍增下去還得了?? 請問有其他方式ㄇ??
改成3層式的架構應該就沒這個問題了.
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#19 引用回覆 回覆 發表時間:2002-10-31 09:28:30 IP:61.220.xxx.xxx 未訂閱
前輩``` 那ㄇ說DataModule就只是來管理連結連結資料庫相關元件而已囉```
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#20 引用回覆 回覆 發表時間:2002-10-31 10:37:29 IP:61.220.xxx.xxx 未訂閱
差不多是這樣 回首來時路 也無風雨也無晴~~@.@
------
天行健
君子當自強不息~~@.@
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#21 引用回覆 回覆 發表時間:2002-10-31 11:58:30 IP:61.220.xxx.xxx 未訂閱
感謝各位前輩指導````小弟受益不淺, 但是那ㄇ多前輩都回答```小弟不知要給誰得分ㄋ?? 可惜又只能給一個人~~~~~ 希望版主能改變一下給分方式好囉~~~~
E003
一般會員


發表:0
回覆:2
積分:0
註冊:2002-10-31

發送簡訊給我
#22 引用回覆 回覆 發表時間:2002-10-31 17:23:10 IP:203.69.xxx.xxx 未訂閱
引言: 就我的了解 放在DataModule會比較好 差別在於 1:方便管理 2:Use unit時只須use此DataModule 3:程式碼較清楚 回首來時路 也無風雨也無晴~~@.@
ching
------
ching
E003
一般會員


發表:0
回覆:2
積分:0
註冊:2002-10-31

發送簡訊給我
#23 引用回覆 回覆 發表時間:2002-10-31 17:29:07 IP:203.69.xxx.xxx 未訂閱
引言: 請問各位前輩,小弟的程式中,原本每個form裡所用ado元件都是各自獨立去拉元件,如果我要用DataModule來作管理,請問dataset的元件放在DataModule上和放在各自的from上有何差別??哪個方式會比較好??
以單一程式放進FORM(資料維護),關聯多table(商業規則)放進datamodule ching
------
ching
領航天使
站長


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

發送簡訊給我
#24 引用回覆 回覆 發表時間:2002-11-03 12:34:38 IP:192.168.xxx.xxx 未訂閱
引言: 感謝各位前輩指導````小弟受益不淺, 但是那ㄇ多前輩都回答```小弟不知要給誰得分ㄋ?? 可惜又只能給一個人~~~~~ 希望版主能改變一下給分方式好囉~~~~
還是請您選一位吧! 太複雜的給分制度,怕大家不會使用! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-11-25 18:17:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!