主索引重覆時DELPHI會有錯誤訊息,如何事先取得並處理 |
尚未結案
|
jeffreck
高階會員 ![]() ![]() ![]() ![]() 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
各位前輩請教一下: 當資料儲存時如資料主索引重覆狀況DELPHI會產生一個錯誤訊息
有何方法可在程式中取得此錯誤並顯示自己的訊息?
是可以在儲存時先用Tquery先檢是有有存在,但不知是否有更好的方法?
另外如某此欄位不可空白,但資料為空白時也會有錯誤訊息,
是否也可以取得錯誤加以處理 在 http://delphi.ktop.com.tw/topic.php?topic_id=7293
有不錯的說明,但有更方更的方法嗎?? 謝謝各位前輩
非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆
°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒
﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
|
chih
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
channel
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言:當資料儲存時如資料主索引重覆狀況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
------
~小弟淺見,參考看看~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |