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

判斷ADOQuery中資料是否儲存問題

尚未結案
jerry_nie2008
一般會員


發表:8
回覆:4
積分:2
註冊:2005-04-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-06 14:20:10 IP:218.18.xxx.xxx 未訂閱
各位大大: 我在使用資料更新中出現如下疑惑, 1.我已開啟ADO的BatchUpdate機制﹐將ADO資料集元件的CursorType屬性值設為ctKeySet﹔LockType屬性值設為ltBatchOptimisic; 2.Button使用ADOQuery1.UpdateBatch來更新數据. 但事實上有時候會直接關閉Form,并沒有按Button儲存! 有沒有什么辦法在關閉Form時判斷數据是否已經儲存,如果尚未儲存時就提示是否儲存入資料庫,再考慮關掉Form. 謝謝大家!
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-06 14:47:50 IP:202.62.xxx.xxx 未訂閱
您好﹗    試試將以下的方法寫在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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-07 11:24:23 IP:219.133.xxx.xxx 未訂閱
謝謝cashxin2002兄.    問題已經得到解決,只是有個小小的問題尚需要請教cashxin2002兄. 每次在系統提示我需不需要保存時,點YES肯定OK,但是點NO時就出現如下畫面! 發表人 - jerry_nie2008 於 2005/06/07 11:31:00
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-07 11:47:35 IP:202.62.xxx.xxx 未訂閱
您好﹗    取消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;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
系統時間:2024-05-19 20:22:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!