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

兩個關聯TABLE錯誤訊息KEY VIOLATION該如何中文化?

答題得分者是:channel
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-28 20:34:46 IP:210.201.xxx.xxx 未訂閱
小弟把兩個TABLE設成關聯,故意把關聯欄位值重複, 此時錯誤訊息在單純使用執行檔時是顯示KEY VIOLATION, 請教該如何把這個錯誤用SHOWMESSAGE('已有相同鍵值') 顯示出來 「堅持」從洗馬桶做起 Aric
cashxin2002
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-28 21:16:59 IP:63.84.xxx.xxx 未訂閱
您好!    您可以在這兩個關聯Table之外, 另加一個Table, 對應關鍵欄位, 專門來負責查詢的工作, 在關聯Table進行新增或編輯后, 于Before Post事件中, 利用Locate對負責查詢工作的Table進行查詢, 若有查詢到相同的欄位值, 即說明相同的關鍵欄位已經存在, 即時ShowMessage('已有相同鍵值'), 并將此資料Cancel. Locate方法如下:
begin
  if Table2.Locate('IDNo', Edit1.Text, [loCaseInsensitive,loPartialKey]);
  //IDNo為假設的查詢的鍵值欄位名, loCaseInsensitive參數代表查詢時不
  //分大小寫, loPartialKey參數代表只要部分資料符合, 此資料就算符合.
    then begin
      ShowMessage('已有相同鍵值');
      Table1.Cancel;
    end
  else
    begin
      Table1.Post;
    end;
end;
參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-28 22:00:59 IP:210.201.xxx.xxx 未訂閱
引言: 感謝提供的方法; 但小弟想說系統已能自已判斷是什麼錯誤時,發出英文訊息, 錯誤訊息已明確指出了,想把這英文錯誤訊息截取後以中文取代, 只要找出發出訊息的地方,判定錯誤碼後,以中文取代, 不知要如何作?
「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/08/28 22:03:04
channel
尊榮會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-29 09:01:25 IP:211.21.xxx.xxx 未訂閱
引言:
引言: 感謝提供的方法; 但小弟想說系統已能自已判斷是什麼錯誤時,發出英文訊息, 錯誤訊息已明確指出了,想把這英文錯誤訊息截取後以中文取代, 只要找出發出訊息的地方,判定錯誤碼後,以中文取代, 不知要如何作?
「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/08/28 22:03:04
使用BDE請參考這篇文章:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26413 使用ADO請參考這篇文章:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28106
------
~小弟淺見,參考看看~
huangeider
高階會員


發表:288
回覆:492
積分:231
註冊:2003-02-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-31 06:29:49 IP:61.231.xxx.xxx 未訂閱
引言: 使用BDE請參考這篇文章:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26413 使用ADO請參考這篇文章:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28106
引言: 感謝各位 cnannel兄的方法應用的範圍太小了得指定錯誤的資料集元件程序才能使用 但我測試的結果是有很多如在資料post前發生錯誤時 ,這個方法是不會被 執行到的, 就算已指定了onposterror這個程序也不會執行到 ,所以覺得應用上如能在錯誤發生後, 若能執行到預設的錯誤function那就很實用,非常感謝兩位的意見
「堅持」從洗馬桶做起 Aric 發表人 - huangeider 於 2003/08/31 08:44:07
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-31 09:12:30 IP:210.3.xxx.xxx 未訂閱
Application.OnException or modify the resource strings in Consts.pas, DBConsts.pas, MidConst.pas, etc.
系統時間:2024-05-12 3:00:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!