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

分拆 DataSet 的煩惱

 
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-04-10 10:13:04 IP:202.123.xxx.xxx 未訂閱
隨著程式愈寫愈大, 很多時都會把 Data Module 分得仔細一點, 再將裡面的 DataSet 分門別類分別放到細分之後適當的 Data Module 裡。可是每當 DataSet 一旦從一個 Data Module 移到另一個 Data Module 處, 每一個連繫到這個 DataSet 的 DataSource Component 的 DataSet 屬性都會消失; 這令我很煩惱, 尤其是通常這些 DataSource Component 會散落在不同的 Form 上, 一旦有某個 DataSource 的 DataSet 消失了而忘了補回, 程式執行時便會出現嚴重 Error, 最慘的是, 這種情況在 Compile 階段, Delphi 是不會檢查出來的。 有甚麼解決之道呢?
------
--
小卜子
lee
站長


發表:55
回覆:173
積分:45
註冊:2002-02-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-04-10 11:46:27 IP:61.219.xxx.xxx 未訂閱
可以考慮採用可文字編修.DFM檔的工具, 先將DataModule1全部copy到datamodule2, 在用文字編修.DFM檔的工具修改datamodule2的連結,並去除留在datamodule1的table或query,再修改datamodule1的.DFM去除移到datamodule2的table或query, 至於編修工具我要再找找!    ~~~Delphi K.Top網站總管~~~
------
~~~Delphi K.Top網站總管~~~
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-04-11 10:44:54 IP:202.123.xxx.xxx 未訂閱
引言: 可以考慮採用可文字編修.DFM檔的工具, 先將DataModule1全部copy到datamodule2, 在用文字編修.DFM檔的工具修改datamodule2的連結,並去除留在datamodule1的table或query,再修改datamodule1的.DFM去除移到datamodule2的table或query, 至於編修工具我要再找找! ~~~Delphi K.Top網站總管~~~
我不太明白, 你說用文字編修.DFM檔的工具修改「DataModule2的連結」, 這是指甚麼? 一般連結, 是在 TForm 上的 DataSource (我的習慣把 DataSource 放到 Form 上) 填上某 DataModule 內的 DataSet, 也就是說, 連結是寫在 Form 的 .DFM 上, 而非 DataModule 的 .DFM 上, 而若果你的 Project 有七個 Form 上放有 DataSource 存取過你的 DataModule 上的 DataSet, 而你搬動這個 DataSet 到其他 DataModule, 那麼你要改動的連結將不是在 DataModule 的 .DFM 上, 而是在七個不同 Form 的 .DFM 上。
------
--
小卜子
lee
站長


發表:55
回覆:173
積分:45
註冊:2002-02-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-04-11 12:20:47 IP:61.219.xxx.xxx 未訂閱
我找到一個辦法,可快速修改: 假設Datamodule2內有Table1與Table2, 新增一個Datamodule3內準備將Datamodule2的Table2搬過來, From內有Datasource1與datasuorce2, 分別指到datamodule2的table1與table2, 則: 1.先將Table2拷貝至Datamodule2 2.進入Form按Alt-F12(View as Text) 3.按Ctrl-R將DataModule2.Table2改為DataModule3.Table2 4.再按Alt-F12(View As Form) 5.將Datamodule2的table2刪除 這樣咧?        ~~~Delphi K.Top網站總管~~~
------
~~~Delphi K.Top網站總管~~~
Diviner
初階會員


發表:36
回覆:112
積分:34
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-04-12 12:11:21 IP:202.123.xxx.xxx 未訂閱
引言: 我找到一個辦法,可快速修改: 假設Datamodule2內有Table1與Table2, 新增一個Datamodule3內準備將Datamodule2的Table2搬過來, From內有Datasource1與datasuorce2, 分別指到datamodule2的table1與table2, 則: 1.先將Table2拷貝至Datamodule2 2.進入Form按Alt-F12(View as Text) 3.按Ctrl-R將DataModule2.Table2改為DataModule3.Table2 4.再按Alt-F12(View As Form) 5.將Datamodule2的table2刪除 這樣咧? ~~~Delphi K.Top網站總管~~~
這個方法我是懂的, 但這方法解決不了我最主要的問題, 就是當 Project 很大的時候, Components 多得不得了, 我們跟本就不曉得有那些 Form 內有 Component 參考過這個被移走的 DataSet, 因為 Compile 根本不會告訴你這個。另一件可惜的是, Find Text 功能中的 Search all files in project 及 Search in Directories 是不會搜尋 DFM 的。 看來還有一個方法解決這問題, 用最簡樸的方法, 就是用 Windows 檔案總管的搜尋檔案內含文字功能 :-)
------
--
小卜子
lee
站長


發表:55
回覆:173
積分:45
註冊:2002-02-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-04-12 13:21:07 IP:61.219.xxx.xxx 未訂閱
引言: 這個方法我是懂的, 但這方法解決不了我最主要的問題, 就是當 Project 很大的時候, Components 多得不得了, 我們跟本就不曉得有那些 Form 內有 Component 參考過這個被移走的 DataSet, 因為 Compile 根本不會告訴你這個。另一件可惜的是, Find Text 功能中的 Search all files in project 及 Search in Directories 是不會搜尋 DFM 的。 看來還有一個方法解決這問題, 用最簡樸的方法, 就是用 Windows 檔案總管的搜尋檔案內含文字功能 :-)
看來您的專案好像很大喔! 本站有一個編修.DFM檔的工具,可尋找替換指令,又有原始程式,您可將之修改為您要的工具,比如加上可從某個目錄中尋找以下的子目錄,將所有的.DFM的, Datamodule1.table1 -> Datamodule2.table2 ... Datamodule1.tablen -> Datamodule2.tablen 見下: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=17967 ~~~Delphi K.Top網站總管~~~
------
~~~Delphi K.Top網站總管~~~
鈴鐺
初階會員


發表:33
回覆:81
積分:35
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-04-15 13:37:57 IP:61.220.xxx.xxx 未訂閱
我有個 DFM 檔(Delphi 6)無法用此工具開啟 :( 不知是否其他網友也遇到此問題?
lee
站長


發表:55
回覆:173
積分:45
註冊:2002-02-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-04-15 21:04:03 IP:61.219.xxx.xxx 未訂閱
引言: 我有個 DFM 檔(Delphi 6)無法用此工具開啟 :( 不知是否其他網友也遇到此問題?
我試也是如此,可能是這工具只在Delphi 3.0測過,它並不支援Delphi 5.0/6.0新增的.DFM格式吧! 再找找有無其它的工具! ~~~Delphi K.Top網站總管~~~
------
~~~Delphi K.Top網站總管~~~
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-06-01 11:32:36 IP:210.61.xxx.xxx 未訂閱
另一種解決方案是 1.將資料模組包裝在Package之中 2.由需要該模組的程式在程式啟動時進行呼叫
系統時間:2024-04-24 20:40:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!