master and detail table後能在detail 的table移上下筆嗎? |
尚未結案
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
引言: 如果只是Detail要下一筆的話不是在DBGrid下移動就可以了嗎??還是你要另外作一各下一筆的Button給Detail使用ㄋ?? 小弟是用delphi7 用bde 資料庫 用ttable 在table1設為master table table2設detail table 再用2個dbgrid各連table1 table2 再compile 執行程式則 table2不知因是不是detail的關係而只能看到跟table1 master相 對應的那一筆 而且要新增也不行只能用table1新增才行 也不能上下移 那這樣子對資料庫而言只能查資料而以功能大大降低 小弟想在(table1 和table2)master detail時同時新增同索引的資料不知如何是好? 再請教如果我有a,b兩棟大樓 table1是大樓資料 table2是住戶資料 此時如想說選b棟大樓就show出各b大樓的房間編號 再選房間編號時就show出這房間編號的所有成員資料如 甲 12歲 小學 乙 30歲 **公司 丙 26歲 家庭主婦 若不用master detail 就不能得相對應的值難道只有用query查table1的房間號碼再locate table2相同的房間號碼 再用query查到此房間的所有成員資料再 show到dbgrid中嗎?(小弟是覺得這樣做會很麻煩且有很多bug產生) 不知大家如何做法,請教此時應如何做呢?「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/04/05 18:39:41 發表人 - huangeider 於 2003/04/05 19:00:22 |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
小弟是用delphi7 用bde 資料庫 用ttable
在table1設為master table
table2設detail table
再用2個dbgrid各連table1 table2
再compile 執行程式則
table2不知因是不是detail的關係而只能看到跟table1 master相
對應的那一筆 而且要新增也不行只能用table1新增才行 也不能上下移
那這樣子對資料庫而言只能查資料而以功能大大降低
Master_Detial本來就是應該同時新增或修改或刪除,不然就失去了M_D的意義了吧??
小弟想在(table1 和table2)master detail時同時新增同索引的資料不知如何是好?
同時先增可以考慮在Table先設定好.不知道你用哪種資料庫?
再請教如果我有a,b兩棟大樓
table1是大樓資料
table2是住戶資料
此時如想說選b棟大樓就show出各b大樓的房間編號
再選房間編號時就show出這房間編號的所有成員資料如
甲 12歲 小學
乙 30歲 **公司
丙 26歲 家庭主婦
若不用master detail 就不能得相對應的值難道只有用query查table1的房間號碼再locate table2相同的房間號碼 再用query查到此房間的所有成員資料再
show到dbgrid中嗎?(小弟是覺得這樣做會很麻煩且有很多bug產生)
不知大家如何做法,請教此時應如何做呢?
這樣要不要考慮用master->detail->detailㄋ?
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
引言: 小弟是用delphi7 用bde 資料庫 用ttable 在table1設為master table table2設detail table 再用2個dbgrid各連table1 table2 再compile 執行程式則 table2不知因是不是detail的關係而只能看到跟table1 master相 對應的那一筆 而且要新增也不行只能用table1新增才行 也不能上下移 那這樣子對資料庫而言只能查資料而以功能大大降低 Master_Detial本來就是應該同時新增或修改或刪除,不然就失去了M_D的意義了吧?? 嗯 小弟想在(table1 和table2)master detail時同時新增同索引的資料不知如何是好? 同時先增可以考慮在Table先設定好.不知道你用哪種資料庫? 小弟用bde建的資料*.db的副檔名 再請教如果我有a,b兩棟大樓 table1是大樓資料 table2是住戶資料 此時如想說選b棟大樓就show出各b大樓的房間編號 再選房間編號時就show出這房間編號的所有成員資料如 甲 12歲 小學 乙 30歲 **公司 丙 26歲 家庭主婦 若不用master detail 就不能得相對應的值難道只有用query查table1的房間號碼再locate table2相同的房間號碼 再用query查到此房間的所有成員資料再 show到dbgrid中嗎?(小弟是覺得這樣做會很麻煩且有很多bug產生) 不知大家如何做法,請教此時應如何做呢? 這樣要不要考慮用master->detail->detailㄋ? [green]你是說三個table中兩個設成mastersource?「堅持」從洗馬桶做起 Aric |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
引言: 主要欄位如下 table1 : 大廈編號 房屋數目 001 2 002 2 table2: 大廈編號 房屋編號 001 a001 001 a002 002 b001 002 b002 table3: 房屋編號 成員名稱 a001 aric a001 lulu a002 john a002 joe a002 stark b001 polo b001 gigi b002 yuki 這樣要怎麼連才能show 出 1選 大廈編號 001 後出現所有這大廈的房屋a001 a002 2選 房屋a002 時出現所有a002的成員 john 和 joe 小弟之前用table2 設mastersource table1 ,indexfield 為 大廈編號 table3 設mastersource table2 ,indexfield 為 房屋編號 因之前都只有一筆資料所以可以設masterdetail且只能秀一筆 但有兩筆資料在同一索引時就不會設了像大廈編號001有兩個房屋編號001 跟 002 小弟語意表達不清實在抱歉 >>< face="Verdana, Arial, Helvetica"> 「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/04/07 14:37:28 |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
引言: table1 ->DataSource1 table2->DataSource2,MasterSource->DataSource1,MasterField->大廈編號 table3->DataSource3,MasterSource->DataSource2,MasterField->房屋編號 table2跟table3都使用DBGrid來顯示資料..這樣不知道清不清楚ㄋ??TRY TRY SEE chih 兄你誤會我的意思 master detail我會連 只是要show 出像 選 大廈編號002 就在一個dbgrid顯出所有 房屋編號(a001 a002) 選房屋編號就在 一個dbgrid顯出所有成員 這樣做法是不是只能用query呢?因用master detail連的話detail只能show出 一筆record耶?「堅持」從洗馬桶做起 Aric |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
不會罷..甚會只出一筆記錄...
從新做一次罷 : Table1 :
大廈編號 最好有 index, 但不是必要
連到 DataSources1, 再連到 DBGrid1 Table2:
大廈編號 必定要有 index
連到 DataSources2, 再連到 DBGrid2
Master Sources 選 DataSources1
按 Master Field 的 [...],選好 大廈編號 的 index (應是 primary key)
Detail Field 及 Master Field 均選好 大廈編號 ,按 ADD,按 OK 現在應該已經連好 Table1 及 Table2,試行一次,在 Master 按那兩個記錄應均有兩個 Detail 在 DBGrid2 內 Table3l
房屋編號 必定要有 index
連到 DataSources3. 再連到 DBGrid3
Master Sources 選 DataSources2
按 Master Field 的 [...],選好 房屋編號 的 index (應是 primary key)
Detail Field 及 Master Field 均選好 房屋編號 ,按 ADD,按 OK
再run 程式結果應是這樣 : DBGrid1 DBGrid2 DBGrid3 大廈編號 房屋數目 大廈編號 房屋編號 房屋編號 成員名稱 001 2 001 a001 a001 aric 002 2 001 a002 a001 lulu 若你在 DBGrid2 內按 A002,應變成 : DBGrid1 DBGrid2 DBGrid3 大廈編號 房屋數目 大廈編號 房屋編號 房屋編號 成員名稱 001 2 001 a001 a002 john 002 2 001 a002 a002 joe a002 stark 若你在 DBGrid1 內按 002,應變成 : DBGrid1 DBGrid2 DBGrid3 大廈編號 房屋數目 大廈編號 房屋編號 房屋編號 成員名稱 001 2 002 b001 b001 polo 002 2 002 b002 b001 gigi是否這樣呢? |
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
引言: 不會罷..甚會只出一筆記錄... 從新做一次罷 : Table1 : 大廈編號 最好有 index, 但不是必要 連到 DataSources1, 再連到 DBGrid1 Table2: 大廈編號 必定要有 index 連到 DataSources2, 再連到 DBGrid2 Master Sources 選 DataSources1 按 Master Field 的 [...],選好 大廈編號 的 index (應是 primary key) Detail Field 及 Master Field 均選好 大廈編號 ,按 ADD,按 OK 現在應該已經連好 Table1 及 Table2,試行一次,在 Master 按那兩個記錄應均有兩個 Detail 在 DBGrid2 內 Table3l 房屋編號 必定要有 index 連到 DataSources3. 再連到 DBGrid3 Master Sources 選 DataSources2 按 Master Field 的 [...],選好 房屋編號 的 index (應是 primary key) Detail Field 及 Master Field 均選好 房屋編號 ,按 ADD,按 OK再run 程式結果應是這樣 : DBGrid1 DBGrid2 DBGrid3 大廈編號 房屋數目 大廈編號 房屋編號 房屋編號 成員名稱 001 2 001 a001 a001 aric 002 2 001 a002 a001 lulu 若你在 DBGrid2 內按 A002,應變成 : DBGrid1 DBGrid2 DBGrid3 大廈編號 房屋數目 大廈編號 房屋編號 房屋編號 成員名稱 001 2 001 a001 a002 john 002 2 001 a002 a002 joe a002 stark 若你在 DBGrid1 內按 002,應變成 : DBGrid1 DBGrid2 DBGrid3 大廈編號 房屋數目 大廈編號 房屋編號 房屋編號 成員名稱 001 2 002 b001 b001 polo 002 2 002 b002 b001 gigi是否這樣呢? justmade兄 謝謝你詳細的解析 以上的結果是我希望做到的 在未設索引鍵前是以下的欄位(同一個欄位相同的資料可以有重複的情形) 以下的欄位就是未設索引前的狀態 但一但在Database Desktop裏做了索引後 1 table1 沒問題因大廈編號沒有重複值(001 和002 沒有重複) 2 table2 資料就剩 大廈編號 房屋編號 001 a001 002 b001 3 table3 剩下 房屋編號 成員名稱 a001 aric a002 john b001 polo (以上設索引之後的結果我知道是因索引不能重複的關係所以會變這樣子, 設完索引後自動把重複的索引欄刪除,所以重複的索引欄會剩一筆資料) 設完索引後再用chih 兄和 justmade所說的方法連master detail 因索引值都剩一筆故會變成如下的情況 DBGrid1 DBGrid2 DBGrid3 大廈編號 房屋數目 大廈編號 房屋編號 房屋編號 成員名稱 001 2 001 a001 a001 aric 002 2 002 b001 b001 polo 所以在 DBGrid2 內沒有 A002 可按因只剩一筆a001 若你在 DBGrid1 內按 002,應變成 : DBGrid1 DBGrid2 DBGrid3 大廈編號 房屋數目 大廈編號 房屋編號 房屋編號 成員名稱 002 2 002 b001 b001 polo 所以我在想master detail 的功能這麼不好有人會用嗎? 主要欄位如下(這是未設索引前的欄位) > >>< face="Verdana, Arial, Helvetica"> 「堅持」從洗馬桶做起 Aric |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |