如何讓多個 DataSetProvider 的異動在同一個交易中 |
答題得分者是:jieshu
|
matrix66
一般會員 發表:3 回覆:7 積分:2 註冊:2002-05-19 發送簡訊給我 |
|||
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|||
matrix66
一般會員 發表:3 回覆:7 積分:2 註冊:2002-05-19 發送簡訊給我 |
Justmade 大大
你所說的我都知道,但是每次呼叫ClientDataSet的ApplyUpdates就會
觸發DataSetProvider的InternalApplyUpdate, 並開始一個Transaction,
所以執行兩個 ClientDataSet.ApplyUpdates, 就會產生兩個Transaction,
這樣就會發生第一個ClientDataSet ApplyUpdates成功, 第二個失敗, 就無法
RollBack 第一個ClientDataSet所異動的資料...
引言: 這種整體的 Transaction 要用 Connection 元件來做如 BDE 的 TDatabase ADO 的 TADOConnection dbExpress 的 TSQLConnection 等等 請你參看Help中你用的相關Connection元件的 StartTransaction, Commit, Rollback 等 Methods |
||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: DataSetProvider異動時會自己呼叫StartTransaton and Commit 但如果多個DataProvider異動再同一個交易中, 只要一個異動失敗 就全部 RollBackAppServer寫一個Function給Client呼叫,傳入所有ClientDataSet.Delta,在AppServer的Function交易中下DataSetProvider.ApplyUpdate即可。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |