全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:980
推到 Plurk!
推到 Facebook!

如何判断DBEdit等有源控件是否更改过?

答題得分者是:Fishman
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-31 10:27:06 IP:211.162.xxx.xxx 未訂閱
大大们好,又有问题麻烦各位了,请您多多指点 当我们更改了某笔记录时,此时改变后的数据并没有被写入数据库,必须调用<>>方法来将数据写入数据库。 < class="code"> procedure TForm1.Button1Click(Sender: TObject); begin ADOTable1.Post; end; 但是,如果我没有改变数据字段,又偏偏按下Button去保存数据的话,此时程式就会出错,如下图: 因此在调用Post方法之前必须先检验一下记录目前的状态(State),所以程式改为:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if ADOTable1.State = dsEdit then
  begin
    ADOTable1.Post;
    ShowMessage('数据已经被写入');
  end;
end;
到这里,好象已经结束了。我的问题就出在这里,这样做会出现按下保存的Button后,数据不能及时的写入数据库(ShowMessage里的内容没有出现),需要浏览一下前一笔数据才能被写入,很麻烦!而原来不加ADOTable1.State时就不会这样啊!请大大们指点我该如何解决这个问题,是不是还有其他的好方法呢?(新手提的问题很幼稚,请大大您见怪不怪) < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获?
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-31 11:18:45 IP:210.65.xxx.xxx 未訂閱
Hi bigdogchina,    試試以下寫法
procedure TForm1.Button1Click(Sender: TObject);
begin
    TRY
        ADOTable1.Post;
    EXCEPT
        ShowMessage('Post Error !!');
    END;
end;    或是    procedure TForm1.Button1Click(Sender: TObject);
begin
    TRY
        IF ADOTable1.State in [dsEdit,dsInsert] then
            BEGIN
                ADOTable1.Post;
                ShowMessage('Update or Insert successfully !!')
            END;
    EXCEPT
        ShowMessage('Post Error');
    END;
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-31 11:27:27 IP:218.15.xxx.xxx 未訂閱
ShowMessage里的内容没有出现 当然会不显示,内容只有当ADOTable1处于编辑状态才会出现,所以换换,试试看 procedure TForm1.Button1Click(Sender: TObject); begin if ADOTable1.State = dsEdit then begin ADOTable1.Post; end else ShowMessage('数据已经被写入'); end; ——行径窄处,留一步与人行——
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-31 13:43:26 IP:211.162.xxx.xxx 未訂閱
非常感谢Fishman,deity两位大大精彩的回答,问题已经解决了!答题分已奉上,乞望以后能多多的指点我,谢谢 < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获?
系統時間:2024-06-29 9:57:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!