全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1675
推到 Plurk!
推到 Facebook!

master&detail for DbGrid

 
JalenKu
一般會員


發表:14
回覆:24
積分:7
註冊:2002-06-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-07-26 17:03:01 IP:203.66.xxx.xxx 未訂閱
請教各位: 一般用delphi寫master/detail程式時...一定時Detail用grid來表現.... 有遇過一種情形, 同時新增好幾筆record,可是存入database時 確發現只有幾筆存入.... 在grid上每新增一筆那上一次新增的就會消失... 那我公司的解法是在要輸入detail資料時先對master做post的動作... procedure TForm1.DBGridEnter(Sender: TObject)begin master.Post; master.Edit;end; 但我覺得這是不合理的...因為若先對master做post那當我要cancel該筆資料時就必須用delete來做了...再者若在資料庫有對master 做trigger的動作...那master先post,detail還沒,那一定有問題... 所以想參考一下各位做法... if you lose your step,just tango on
------
if you lose your step,just tango on
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-07-27 09:15:56 IP:192.168.xxx.xxx 未訂閱
引言: 請教各位: 一般用delphi寫master/detail程式時...一定時Detail用grid來表現.... 有遇過一種情形, 同時新增好幾筆record,可是存入database時 確發現只有幾筆存入.... 在grid上每新增一筆那上一次新增的就會消失... 那我公司的解法是在要輸入detail資料時先對master做post的動作... procedure TForm1.DBGridEnter(Sender: TObject)begin master.Post; master.Edit;end; 但我覺得這是不合理的...因為若先對master做post那當我要cancel該筆資料時就必須用delete來做了...再者若在資料庫有對master 做trigger的動作...那master先post,detail還沒,那一定有問題... 所以想參考一下各位做法...
您有將CacheUpdate打開嗎? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-07-27 09:17:04 IP:192.168.xxx.xxx 未訂閱
對了!JalenKu不好意思,另一區同樣的問題我將之刪除! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-07-27 09:59:14 IP:203.217.xxx.xxx 未訂閱
1. 用TQuery連DBGrid, 新增多筆資料,存入後可能資料存入正確, 而畫面顯示筆數並無增加, 常須close再open 2. 注意DBGrid中之options--CancelOnExt, 預設為True, 也就是輸入之最後一筆資料,若focus直接移開Grid,並無post. 若在資料庫有對master 做trigger的動作...那master先post,detail還沒,那一定有問題 一般而言Maste-Detail之Trigger應是 Detail Insert Restrict-- 無master不能Insert Detail Master Delete Restrict--有Detail不能Delete Master 故應該無問題 那我公司的解法是在要輸入detail資料時先對master做post的動作... 也是一種可行的做法, 雖然我們不是如此做
JalenKu
一般會員


發表:14
回覆:24
積分:7
註冊:2002-06-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-07-31 15:06:58 IP:203.66.xxx.xxx 未訂閱
謝謝天使大大,及ccchen大大的熱心指教, 天使大大: CacheUpdate已打開了.. 我想再重述一下問題,以兩個DBGRID 來表現master/detail的話 往往在輸入表身時,會出現輸入好幾筆的資料在存檔時欲莫名其妙 lose一些資料 因為我公司的解法,是先將表頭post,如此表身的資料就正常了.. 可是如果取消訂單的話,還必須要把表頭給delete掉,不符合真正的流程 所以才會很疑惑 ccchen 大大.. 請問你是怎麼做的呢?? if you lose your step,just tango on
------
if you lose your step,just tango on
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-07-31 20:25:35 IP:211.23.xxx.xxx 未訂閱
我們公司的作法是在maser新增時先將maser/deail的關聯斷掉,等全部POST後再將關聯連回去 @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
JalenKu
一般會員


發表:14
回覆:24
積分:7
註冊:2002-06-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-08-06 11:52:35 IP:203.66.xxx.xxx 未訂閱
謝謝andersonhsieh 似乎這是比較好的作法 if you lose your step,just tango on
------
if you lose your step,just tango on
系統時間:2024-05-02 8:49:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!