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

** 關於ADO 主從表的UpdateCatch (批量更新) 問題,請高人指教?

 
yimten
一般會員


發表:1
回覆:0
積分:0
註冊:2004-12-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-25 18:56:25 IP:218.104.xxx.xxx 未訂閱
** 關於ADO 主從表的UpdateCatch (批量更新) 問題,請高人指教? 初始: 主表 SA LockType = ltBatchOptimistic , CacheSize=1000 從表 SA_ITEM LockType = ltBatchOptimistic, CacheSize = 1000 當新增時 (SA.Append) SA 明細輸完後,輸入多筆SA_ITEM 當 SA_ITEM (not noll) 欄位都輸完,保存正常. 例如 (1) A B C ********************** 1 1 a 2 2 3 ********************** (表1) 假如欄位C 為(not NULL) 把以上資料改成如下 A B C **************** 1 1 a 2 2 ****************** 表 (2) 其中 欄位C第二條記錄為空,我點保存,提示錯誤資訊(正常,因為欄位C第條欄位值為空) 然後我把欄位C 第二條記錄補上,跟(表1)資料一樣, 或把第二條記錄刪除(sa_item.delete ) 保存時還是提示錯資訊. 我的保存代碼是: Try AdoConnection1.BeginTrans; // 事務開始 sa.UpdateBatch(); sa_item.UpdateBatch(); DMData.ADOConnection1.CommitTrans; // 提交 Except DMData.AdoConnection1.RollbackTrans; // 回滾 Raise Exception.Create('操作被返回,請檢察資料後重試.'); End; 要保住輸入的資料, 改改錯誤再保存 請指點這是為什麼,應該怎麼處理?
smallfox
高階會員


發表:2
回覆:113
積分:128
註冊:2003-02-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-07 01:02:06 IP:203.73.xxx.xxx 未訂閱
在 Try   ...   ... Except on e:exception do begin    Application.message(pchar('原因:'+e.message),'錯誤',MB_ICONERROR)    AdoConnection1.RollbackTrans; // 回滾    //    // 加上下列敘述, 如何 ?    SA.CancelUpdate;    SA_item.CancelUpdate;    // end; End;
系統時間:2024-06-27 1:22:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!