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

TQuery的ApplyUpdate是否有Bug??

缺席
帥氣銀行
一般會員


發表:13
回覆:40
積分:15
註冊:2005-05-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-16 11:16:52 IP:61.219.xxx.xxx 訂閱
情況是這樣
當有兩個TQuery
設定為Master-Detail關連
Cache Update:=true;
當使用TQuery.ApplyUpdate時
若Master先ApplyUpdate後再將Detail.ApplyUpdate
則只有Master的資料會寫入資料庫
Detail的異動資料則會消失

若將順序反過來Detail先ApplyUpdate後
再Master.ApplyUpdate
則兩個TQuery的資料都會進去
屢試不爽

請問這是否為Delphi本身程式的Bug?
還是我寫的程式有問題???

使用環境
win2k sp4 delphi 7 update 1 BDE 5.01 Paradox
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-16 13:15:26 IP:60.248.xxx.xxx 未訂閱

關於 M/D 之間的關聯你是如何處理的?

我想你可能是直接將 Detail 的 DataSource 接到 Master 導致

因為 Master 在 ApplyUpdate 時重新讓 Detail 以為有變動, 所以就重讀導致異動的資料流失

------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
帥氣銀行
一般會員


發表:13
回覆:40
積分:15
註冊:2005-05-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-08-16 15:05:25 IP:61.219.xxx.xxx 訂閱

===================引 用 文 章===================

關於 M/D 之間的關聯你是如何處理的?

我想你可能是直接將 Detail 的 DataSource 接到 Master 導致

因為 Master 在 ApplyUpdate 時重新讓 Detail 以為有變動, 所以就重讀導致異動的資料流失

===================引 用 文 章===================

我是直接將 Detail 的 DataSource 接到 Master 沒錯

這樣不是一般很常用的做法嗎??

如果不這樣做好像沒有其他的方法??

還是在ApplyUpdate之前先將Detail TQuery 的DataSource設為nil是否可行??


另外我參考過李維大師的精通Delphi 4.0 實戰篇2

裡面也有提到這個問題

但書內好像說在BDE 5.0之後的版本這樣的情況已經修正(不確定 我再翻翻看書)

再次感謝你的回答

系統時間:2024-05-19 15:24:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!