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

Master-Detail當Master為0筆資料時Detail會出錯

答題得分者是:herbert2
frappe
中階會員


發表:88
回覆:114
積分:95
註冊:2008-10-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-20 01:03:42 IP:115.83.xxx.xxx 訂閱
我有2個ClientDataSet用MasterSource的方式串起來成為Master-Detail

但是我的Master時常會因為資料變動,使得Master資料為0筆,
此時Detail因為讀不到參數而錯誤,導致無法Open

請問有辦法解決這個問題嗎?
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-20 09:16:31 IP:211.72.xxx.xxx 訂閱
這是系統分析與程式寫法不恰當所致!
所謂 Master-Detail 就必須先有 Master 才有 Detail,
要刪除時, 則須先刪光 Detail 才可刪 Master.
若非如此, 則只是 foreign 的 relation 關係, 不是 Master-Detail.

例如: 客戶檔中有郵遞區號欄, 經關聯到郵遞區號檔的郵遞區號欄得到郵遞區縣市鄉鎮名稱,
則若用 Inner join 方式關聯不到, 便看不到該筆客戶資料;
但若用 outer join 方式關聯不到, 便仍能看到該筆客戶資料, 只是郵遞區縣市鄉鎮名稱為 NULL.
應如何處理, 想必您已瞭解.

===================引 用 frappe 文 章===================
我有2個ClientDataSet用MasterSource的方式串起來成為Master-Detail

但是我的Master時常會因為資料變動,使得Master資料為0筆,
此時Detail因為讀不到參數而錯誤,導致無法Open

請問有辦法解決這個問題嗎?
frappe
中階會員


發表:88
回覆:114
積分:95
註冊:2008-10-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-12-21 00:39:48 IP:115.82.xxx.xxx 訂閱
謝謝大大的回答,我問題解決哩

我是因為FormCreate的時候

ClientDataSet1.Close;
ClientDataSet.Filter:='xxxxx';
ClientDataSetFiltered:=True;
ClientDataSet1.Open;
篩選不到資料所以出錯,不是真的0筆資料

我改成先Open再Filter就OK哩
ClientDataSet1.Close;
ClientDataSet1.Open;
ClientDataSet.Filter:='xxxxx';
ClientDataSetFiltered:=True;

===================引 用 herbert2 文 章===================
這是系統分析與程式寫法不恰當所致!
所謂 Master-Detail 就必須先有 Master 才有 Detail,
要刪除時, 則須先刪光 Detail 才可刪 Master.
若非如此, 則只是 foreign 的 relation 關係, 不是 Master-Detail.

例如: 客戶檔中有郵遞區號欄, 經關聯到郵遞區號檔的郵遞區號欄得到郵遞區縣市鄉鎮名稱,
則若用 Inner join 方式關聯不到, 便看不到該筆客戶資料;
但若用 outer join 方式關聯不到, 便仍能看到該筆客戶資料, 只是郵遞區縣市鄉鎮名稱為 NULL.
應如何處理, 想必您已瞭解.

P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-21 22:45:17 IP:61.67.xxx.xxx 未訂閱
這個用法李維大師可能不是很認同, 但確是大家經常所常用的
我不知道你MASTER-DETAIL的關連是怎麼寫的, 寫在那在
一般我都在MASTER的ONAFTERSCROLL下寫
IF NOT (MASTER.EOF AND MASTER.BOF) THEN BEGIN
..... 寫你的關聯
END;
系統時間:2024-05-06 5:12:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!