請問Master_Detail如何在Detail只載入連結之資料 |
尚未結案
|
asupeduer
初階會員 發表:36 回覆:49 積分:27 註冊:2002-11-08 發送簡訊給我 |
標題好像很奇怪。 簡單的說
TableA //Customer
TableB //Orders
將兩個Table做Master_Detail的關聯,
TableA.Cust_NO = TableB.Cust_NO //TableA客戶編號=TableB客戶編號 但是如果Customers資料有五萬筆,平均一位客戶有十筆訂單,
在Form開啟時,又將TableA,TableB同時開啟,TableB要載入五十萬筆資料,
不論單機或網路都無法負荷。 當然我可以用預存程序將TableB //Orders 只在TableA的事件On scroll時
將TableB 重新提取資料(只提取TableB中,符合顧客編號的資料)
但是似乎麻煩許多。 說了這麼多,是想請問DataSet(ADOTable或Table)能否只設定Master_Detail
關聯,但在開啟時只提取TableB中與TableA有關聯的資料列row? //還請各位前輩指教 //------------------------------------------------
我常在想,寫程式跟爬格子到底有什麼不同呢???????????
//------------------------------------------------
------
//------------------------------------------------ 我常在想,寫程式跟爬格子到底有什麼不同呢??????????? //------------------------------------------------ |
computer18
一般會員 發表:1 回覆:11 積分:2 註冊:2002-03-17 發送簡訊給我 |
|
asupeduer
初階會員 發表:36 回覆:49 積分:27 註冊:2002-11-08 發送簡訊給我 |
很抱歉,因為我用的是adotable,不是多層次的clientdataset那個元件
也沒有packetrecord這屬性,雖然可以設MaxRecord指定一次提取資料列數,
但是無法提取所需要的資料列,所以目前仍無法解決。 //------------------------------------------------
我常在想,寫程式跟爬格子到底有什麼不同呢???????????
//------------------------------------------------
------
//------------------------------------------------ 我常在想,寫程式跟爬格子到底有什麼不同呢??????????? //------------------------------------------------ |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
一般常用的法來說...Order本身就會開二個Table..Order_M,Order_D..
然後Cust_NO是在Order_M,用來Customer 做join以利帶出Cust_NAME..
但看你第一篇的講法好像是相反..
不知是否有特殊設計意義ㄋ???
引言: 很抱歉,因為我用的是adotable,不是多層次的clientdataset那個元件 也沒有packetrecord這屬性,雖然可以設MaxRecord指定一次提取資料列數, 但是無法提取所需要的資料列,所以目前仍無法解決。 //------------------------------------------------ 我常在想,寫程式跟爬格子到底有什麼不同呢??????????? //------------------------------------------------ |
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
asupeduer
初階會員 發表:36 回覆:49 積分:27 註冊:2002-11-08 發送簡訊給我 |
感謝各位前輩︰
其實T.J.B.大大說的沒錯呀,用ADOQuery、ADOProc、ADODataSet都可以。
只要寫程式碼,就可以選取出我要的資料。 只是懶的寫,但我想想關於ADOTable的原理,他是在On Open的事件後,
載入所有資料,再來判定Master的資料表中,哪些是屬於某甲顧客的訂單。
基本上,已經無法可以設定一次能提取哪些指定的資料。
(因為是先載入再做判定) 所以還是得用Select語法,指定要篩選出的資料,再傳回前端,
只是這樣實在有點麻煩,但好像也沒有更好的解決方案了。 或者會不會有人寫出另一種 ADOTable,這種ADOTable其實是Query,
並且在指定Master_Detail後,即可自動幫你編輯好SQL 語法,
且只傳回與Master Table關聯的資料列row。 小弟異想天開,看看就好 //------------------------------------------------
我常在想,寫程式跟爬格子到底有什麼不同呢???????????
//------------------------------------------------
------
//------------------------------------------------ 我常在想,寫程式跟爬格子到底有什麼不同呢??????????? //------------------------------------------------ |
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
richcomp
中階會員 發表:18 回覆:66 積分:51 註冊:2002-10-18 發送簡訊給我 |
引言: 用ADODataSet ADODataSet1=主 ->DataSource1 ADODataSet2=明細 ->DataSource2 再設ADODataSet2 DataSource=DataSource1 IndexFieldName=銷貨單號 MasterFields=銷貨單號 這樣就會自動更新ADODataSet2=明細以上做法確實可行,我就是這麼做的,千萬別爲了方便直接用ADOtable,我看過明細表數據庫執行SQL為: select * from detail where detail_no=?,説明明細表中資料確實是單頭變化時重新取得 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |