兩個TABLE的同時運作 |
答題得分者是:P.D.
|
tonyrao
一般會員 發表:3 回覆:2 積分:1 註冊:2008-12-21 發送簡訊給我 |
假設有兩個TABLE , 一個是主檔 , 一個是明細檔
主檔的欄位有 1.編號 2.名稱 明細檔的欄位有 1.編號 2.數量 3.日期 4,流水號 主KEY是 編號 如果一個Form 我同時要對這兩個TABLE運作 EX: 先對主檔作查詢的動作 , 然後再把明細檔內同個編號的內容全部列出來 邏輯上我是不是這麼做 1.先在Form擺上兩個 TTable 或者是 TQuery ,各指向主檔跟明細檔 , 再擺TDataSource 也是分別指向TTable或者TQuery 2.然後程式碼裡面寫 : 先在主檔的那個 TdataSource 取出一個編號的資料 3.再把主檔的那個編號的資料丟給 明細檔的那個 TDataSource 4.然後明細檔用Step 3 的那個主檔編號再做一次搜尋 以上四個步驟 是不是就能夠達成兩個Link起來的Table 做同步的動作 那可以請問 還有更快的做法嗎?? 例如 Delphi本身就能夠在執行程式之前就Link好Table 謝謝各位大大的回答 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
tonyrao
一般會員 發表:3 回覆:2 積分:1 註冊:2008-12-21 發送簡訊給我 |
謝謝版主的回答, 其實我翻了以前的文章, 原來這個稱之為"Master Detail" , 我翻了以前的文章才知道這樣的名稱
其實我要問這問題最主要的目的是 , 當我要做新增刪除的動作 , 有可能會違反MD規則的問題 如果是新增 , 當然可以由畫面來控制如果沒有主檔資料 ,使用者當然沒辦法建立明細檔 那刪除就會有問題了, 如果使用者直接刪除主檔 , 也一並要刪除明細檔的資料 如果沒刪除當然就是違反 MD 規則 我上面的作法是可以做刪除的動作 , 那小弟所謂的有更快的作法是當我刪除主檔時,明細檔必需要一並刪除~~ 程式如果沒有寫這段, 是否可行? 版主有提到 DataBase MenuItem的Form Wizard 可以做到這樣,那小弟我再去試看看 先謝謝版主 ===================引 用 P.D. 文 章=================== 在Delphi中的Database MenuItem 中\有一個Form Wizard 可以很快的連結 master-detail 的方式, 只要把兩個Table做為key值的欄位建立主索引(Primary IndexKey) 就可以透過4-5個步驟完成, 但你想要快一點的, 其實你的程式原法就已經是一個基本型了, 透過Delphi的方式只是少寫了一些程式碼, 會有多快, 嗯! 只要你爽就好啦! |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
1. Form Wizard 只是單純的M/.D連結, 刪除動作我記得沒錯的話, 並不會同步刪除, 所以還是要靠自己操作
2.刪除要先刪 Detail, 成功後再刪 Master, 否則相反的話會造成 Master被刪後,Key Index 已消滅, 自然Detail就會殘留在資料庫中 3.要刪除, 利用 while 方式是最慢的, 你可以針對自己的資料庫, 找一下是否有整批刪除的方式, 會比迴圈快很多 ===================引 用 tonyrao 文 章=================== 謝謝版主的回答, 其實我翻了以前的文章, 原來這個稱之為"Master Detail" , 我翻了以前的文章才知道這樣的名稱 其實我要問這問題最主要的目的是 , 當我要做新增刪除的動作 , 有可能會違反MD規則的問題 如果是新增 , 當然可以由畫面來控制如果沒有主檔資料 ,使用者當然沒辦法建立明細檔 那刪除就會有問題了, 如果使用者直接刪除主檔 , 也一並要刪除明細檔的資料 如果沒刪除當然就是違反 MD 規則 我上面的作法是可以做刪除的動作 , 那小弟所謂的有更快的作法是當我刪除主檔時,明細檔必需要一並刪除~~ 程式如果沒有寫這段, 是否可行? 版主有提到 DataBase MenuItem的Form Wizard 可以做到這樣,那小弟我再去試看看 先謝謝版主 |
tonyrao
一般會員 發表:3 回覆:2 積分:1 註冊:2008-12-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |