Master/Detail 資料表應用問題 |
尚未結案
|
stillalive
初階會員 ![]() ![]() 發表:7 回覆:148 積分:41 註冊:2004-04-07 發送簡訊給我 |
在下用 Table1 -> DataSource -> Table2 來連系 Master/Detail
Nested Table 發現如欲條件選取資料時 , 只能用 locate,filter 方式 ,
但大量資料搜尋效率不彰 . 在下改用 SQLQuery(Master) -> DataSoure -> Table(Detail) 方式 ,欲透SQL指令選取資料 ,
發現ClientDataSet(Master)有資料 ,ClientDataSet(Detail)無資料 .
這實在很令人沮喪 ,
各位大大不知有何辦法幫在下 ?
先謝謝各位喔 . 發表人 - stillalive 於 2004/04/17 00:08:37
|
luowy651
高階會員 ![]() ![]() ![]() ![]() 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
引言: 在下用 Table1 -> DataSource -> Table2 來連系 Master/Detail Nested Table 發現如欲條件選取資料時 , 只能用 locate,filter 方式 , 但大量資料搜尋效率不彰 . 在下改用 SQLQuery(Master) -> DataSoure -> Table(Detail) 方式 ,欲透SQL指令選取資料 , 發現ClientDataSet(Master)有資料 ,ClientDataSet(Detail)無資料 . 這實在很令人沮喪 , 各位大大不知有何辦法幫在下 ? 先謝謝各位喔 . 發表人 - stillalive 於 2004/04/17 00:08:37你好,master/detail方式只适用于table下,要透过sql实现master/detail,可先关闭table中的master与detail功能,再通过adoquery或query指定detail中的关联栏位,例如可能是类似这样的sql: select * from detailtable where 关联栏位=mastertable中的关联栏位 sql执行完后记得将query的active设为true! ------------希望能抛砖引玉 發表人 - luowy651 於 2004/04/17 08:46:22 發表人 - luowy651 於 2004/04/17 09:05:59 |
stillalive
初階會員 ![]() ![]() 發表:7 回覆:148 積分:41 註冊:2004-04-07 發送簡訊給我 |
|
seaturn99
版主 ![]() ![]() ![]() ![]() 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: luowy651 你好 也許Master/Detail功能只能在Talbes元件implement , 在下目前用2組Query,DataProvider,ClientDataSet 來存取 Master/Detail tables .希望能work . PS 站長大大是否能將此留言版加上簡繁互轉功能 , 不然大陸網友留言看起來支離破碎的您好,使用 DataProvider,ClientDataSet 可以實作 Master/Detail .. 只要 key 入少量的 code 就可以實現這個功能 ... 如果有需要我再把 pesudo code 貼上來... ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- |
stillalive
初階會員 ![]() ![]() 發表:7 回覆:148 積分:41 註冊:2004-04-07 發送簡訊給我 |
|
seaturn99
版主 ![]() ![]() ![]() ![]() 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: SouthWind 你好 您好,使用 DataProvider,ClientDataSet 可以實作 Master/Detail .. 只要 key 入少量的 code 就可以實現這個功能 ... 如果有需要我再把 pesudo code 貼上來... ==================================================== 謝謝你幫忙但請貼上有條件選取的code .stillalive 您好: 做法一 : 假設拉了兩組 TDataSetProvider/TClientDataSet 假設一個 TClientDataSet 設成 cdsMaster (Master) ,另一個為 cdsDetail (Detail) 在 cdsMaster 的 OnAfterOpen 與 OnAfterScroll Event function 內執行 您要的特定 SQL command .. (假設 cdsDetail ) 執行 SELECT * FROM MyTable WHERE MykeyCol=:MykeyCol Ex: 在 OnAfterOpen 與 OnAfterScroll 寫入 改變控制 :MykeyCol 的 code ,讓它等於 cdsMaster 的 MyKeyCol 做法二 : 直接設定 cdsDetail 內的 MasterSource ,設定好 MasterField 的連結即可.. 跟 Table 設法差不多.. ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- |
stillalive
初階會員 ![]() ![]() 發表:7 回覆:148 積分:41 註冊:2004-04-07 發送簡訊給我 |
|
seaturn99
版主 ![]() ![]() ![]() ![]() 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
|
stillalive
初階會員 ![]() ![]() 發表:7 回覆:148 積分:41 註冊:2004-04-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |