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

主索引重覆時DELPHI會有錯誤訊息,如何事先取得並處理

尚未結案
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-25 18:46:57 IP:61.218.xxx.xxx 未訂閱
各位前輩請教一下: 當資料儲存時如資料主索引重覆狀況DELPHI會產生一個錯誤訊息 有何方法可在程式中取得此錯誤並顯示自己的訊息? 是可以在儲存時先用Tquery先檢是有有存在,但不知是否有更好的方法? 另外如某此欄位不可空白,但資料為空白時也會有錯誤訊息, 是否也可以取得錯誤加以處理 在 http://delphi.ktop.com.tw/topic.php?topic_id=7293 有不錯的說明,但有更方更的方法嗎?? 謝謝各位前輩 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-25 19:00:06 IP:61.217.xxx.xxx 未訂閱
一般我都會先檢查不得空白的欄位,如果都沒有問題就在儲存前先用Tquery檢查是否已經存在,我覺得這樣滿好控制的Debug也比較容易ㄋ... ^^ 發表人 - chih 於 2003/02/25 19:06:35
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-26 10:46:22 IP:211.21.xxx.xxx 未訂閱
引言:當資料儲存時如資料主索引重覆狀況DELPHI會產生一個錯誤訊息 有何方法可在程式中取得此錯誤並顯示自己的訊息? 是可以在儲存時先用Tquery先檢是有有存在,但不知是否有更好的方法? 另外如某此欄位不可空白,但資料為空白時也會有錯誤訊息, 是否也可以取得錯誤加以處理
其實當資料寫入錯誤,Delphi便會產生一個錯誤訊息,這是可以擷取Delphi的錯誤訊息,取代為自已的訊息,作法如下: (1)寫一處理錯誤訊息之Procedure
procedure TForm1.HasBDEerror(Value:EdatabaseError);
begin
  if Value is EDBEngineError then
    Case (Value as EDBEngineError).Errors[0].ErrorCode of
      9729: MessageDlg('資料重覆!請重新輸入',mtWarning,[mbOK],0);
      9732: MessageDlg('欄位不可空白,請重新輸入',mtWarning,[mbOK],0);
    else
      MessageDlg('尚有其他錯誤,請連絡管理人員!',mtWarning,[mbOK],0);
    end;
end;
(2)在TQuery中的onUpdateError寫:
procedure TForm1.Query1UpdateError(DataSet: TDataSet; E: EDatabaseError;
  UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
  HasBDEerror(E);//呼叫(1)的Procedure
end;
(3)在您下ApplyUpdate的地方(我以onAfterPost為例):
procedure TForm1.Query1AfterPost(DataSet: TDataSet);
begin
  try
    Query1.ApplyUpdates;
  except
    abort;
  end;
end;
不過此方法,只能用在CashedUpdates = True; ~小弟淺見,參考看看~ 發表人 - channel 於 2003/02/26 10:49:44 發表人 - channel 於 2003/02/26 11:14:25
------
~小弟淺見,參考看看~
系統時間:2024-07-01 19:52:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!