判斷ADOQuery中資料是否儲存問題 |
尚未結案
|
jerry_nie2008
一般會員 發表:8 回覆:4 積分:2 註冊:2005-04-25 發送簡訊給我 |
各位大大: 我在使用資料更新中出現如下疑惑, 1.我已開啟ADO的BatchUpdate機制﹐將ADO資料集元件的CursorType屬性值設為ctKeySet﹔LockType屬性值設為ltBatchOptimisic; 2.Button使用ADOQuery1.UpdateBatch來更新數据. 但事實上有時候會直接關閉Form,并沒有按Button儲存! 有沒有什么辦法在關閉Form時判斷數据是否已經儲存,如果尚未儲存時就提示是否儲存入資料庫,再考慮關掉Form. 謝謝大家!
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 試試將以下的方法寫在Form的OnClose事件中﹕
begin ADOQuery1.Filtered := True; ADOQuery1.FilterGroup := fgPendingRecords; //fgPendingRecords參數可過濾出在記憶體區域被異動過但尚未更新回 //后端資料庫的所有資料 if Not ADOQuery1.IsEmpty then begin if MessageDlg('在記憶體區域有異動的資料未更新到后端資料庫, 您是否要更新﹖', mtConfirmation, [mbYes, mbNo], 0) = mrYes then ADOQuery1.UpdateBatch(arAll) else ADOQuery1.CancelBatch(arAll) end; end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
jerry_nie2008
一般會員 發表:8 回覆:4 積分:2 註冊:2005-04-25 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 取消else部分試試﹕
begin ADOQuery1.Filtered := True; ADOQuery1.FilterGroup := fgPendingRecords; if Not ADOQuery1.IsEmpty then begin if MessageDlg('在記憶體區域有異動的資料未更新到后端資料庫, 您是否要更新﹖', mtConfirmation, [mbYes, mbNo], 0) = mrYes then ADOQuery1.UpdateBatch(arAll); end; end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |