sos,事務處理問題??? |
尚未結案
|
dongbocong
一般會員 發表:18 回覆:12 積分:6 註冊:2004-01-02 發送簡訊給我 |
我在開發物流管理系統時,在處理調庫單據時發現數據丟失情況,
例如,a倉庫物資調到b倉庫時,我在a倉庫作單,b倉庫自動產生一帳單據,
我採用一個事務處理。
Database1.StartTransaction;
try
query1.ApplyUpdates;
query2.ApplyUpdates;
Database1.Commit;
except
Database1.Rollback;
raise;
end;
query1.CommitUpdates;
query2.CommitUpdates;
在輸入2000多條單據後,突然發現由一帳單據只有入庫,而對方沒有出庫。
怎麽幫,丟數據是要命的,那位大蝦救救命
|
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: 我在開發物流管理系統時,在處理調庫單據時發現數據丟失情況, 例如,a倉庫物資調到b倉庫時,我在a倉庫作單,b倉庫自動產生一帳單據, 我採用一個事務處理。 Database1.StartTransaction; try query1.ApplyUpdates; query2.ApplyUpdates; Database1.Commit; except Database1.Rollback; raise; end; query1.CommitUpdates; query2.CommitUpdates; 在輸入2000多條單據後,突然發現由一帳單據只有入庫,而對方沒有出庫。 怎麽幫,丟數據是要命的,那位大蝦救救命dongbocong 您好 : 上面看起來好像沒有錯... 提供您一個縮小問題的想法.. 1. 紀錄下 Query1,Query2 Update 資料的結果 2. 紀錄下 Rollback 的結果 先確定是否 Rollback 有沒有如您設計的運作.. ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- |
dongbocong
一般會員 發表:18 回覆:12 積分:6 註冊:2004-01-02 發送簡訊給我 |
|
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: 你遇到過這種丟數據的問題嗎,你一般如何處理,謝謝我以前有遇過自己邏輯上出錯, trace 後才知道 Rollback 為啥沒有動作.. 通常是我先 Trace Info .. 試幾筆特殊的資料(例如:必會發生 Rollback), 先釐清楚程式跑的流程對不對,順便驗證自己的邏輯... 如果還是看不出來,就逐步 Log SQL 執行前後的一些值.. 雖然很麻煩,不過在一時看不出錯誤的情況下,倒是能幫助釐清一些 邏輯,至少,縮小了問題的範圍.. 一點心得,參考看看.. ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |