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

如何抓出EDataBaseError Message呀

 
wsozhang
一般會員


發表:20
回覆:20
積分:8
註冊:2002-06-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-06-27 08:38:51 IP:61.221.xxx.xxx 未訂閱
我用Table DBGrid作新增,而當我再grid輸入時,若遇到不能null 的欄位,而我按下鍵盤的下鈕就會出現錯誤,請問要在哪裡攔截住 這個錯誤而用自己的訊息表示ㄋㄟ?thx
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-06-27 08:59:08 IP:211.22.xxx.xxx 未訂閱
1.在 TTable 的 BeforePost 事件前 判斷不能 Null 的欄位其值是否為 Null 是的話, 就執行 Abort; 的動作 例:
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
  if Table1.FieldByName('Field1').IsNull then
    Abort;
end;
2.或在 TTable 的 OnPostError 事件中攔截 在此事件中發生的 Error, 就是 EDatabaseError 了。 例:
procedure TForm1.Table1PostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
begin
  ShowMessage('存檔時發生錯誤: '   E.Message);
  Action := daAbort;
end;
發表人 - hagar 於 2002/06/27 09:05:16
wsozhang
一般會員


發表:20
回覆:20
積分:8
註冊:2002-06-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-06-27 09:06:33 IP:61.221.xxx.xxx 未訂閱
可是我在PossErr那邊用Showmessage(E.Message); 他不理我,我用step by step 測他也沒跑到posterr 或 Beforepost那邊也沒跑到ㄝ,這怎解呢?
whyzn
中階會員


發表:46
回覆:149
積分:54
註冊:2002-06-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-06-27 09:23:46 IP:61.223.xxx.xxx 未訂閱
引言: 可是我在PossErr那邊用Showmessage(E.Message); 他不理我,我用step by step 測他也沒跑到posterr 或 Beforepost那邊也沒跑到ㄝ,這怎解呢?
不要在 Delphi 發展程式中 按 F9 run, 因為這樣 Delphi 會先欄到 錯誤而給你訊息 (除非你關掉這項功能) 所以你可以由檔案總管去 啟動自己的程式看看 ●○○○○○●○○○○○● 竹密不妨水過,山高無礙雲飛
------
●○○○○○●○○○○○●
竹密不妨水過,山高無礙雲飛
wsozhang
一般會員


發表:20
回覆:20
積分:8
註冊:2002-06-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-06-27 09:27:55 IP:61.221.xxx.xxx 未訂閱
了,thx
系統時間:2024-04-27 10:48:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!