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

如何取得 SQL server error message

尚未結案
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-14 23:25:10 IP:63.211.xxx.xxx 未訂閱
請教先進如何於程式中取得SQL server duplicate key 的錯誤碼以便處理? Thanks
stillalive
初階會員


發表:7
回覆:148
積分:41
註冊:2004-04-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-15 10:35:56 IP:211.75.xxx.xxx 未訂閱
JamesLiang 你好 不知你系統所用元件架構 , 可否詳細說明 .
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-15 10:51:00 IP:61.71.xxx.xxx 未訂閱
引言: 請教先進如何於程式中取得SQL server duplicate key 的錯誤碼以便處理? Thanks
如果只是要秀出錯誤訊息可以這樣
try
  ....
except
   on E.Exception do begin
     showmessage(e.message);
   end;
end;
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-15 10:55:36 IP:207.69.xxx.xxx 未訂閱
多謝PD先生,我使用delphi7.0 sql server我要錯誤碼回應以便程式做判定去執行不同的工作.而不是單純的show error message thanks
stillalive
初階會員


發表:7
回覆:148
積分:41
註冊:2004-04-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-15 14:43:48 IP:211.75.xxx.xxx 未訂閱
JamesLiang 你好 如果你用 Borland Data Engine 組件開發 , procedure TDM.CustomerPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction); begin if (E is EDBEngineError) then if (E as EDBEngineError).Errors[0].Errorcode = eKeyViol then begin MessageDlg('客戶編號重複,請重新輸入', mtWarning, [mbOK], 0); Abort; end; end;
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-15 15:17:13 IP:61.221.xxx.xxx 未訂閱
您好: 如P.D前輩所言取得錯誤訊息的方法,再利用POS就可針對不同的錯誤訊息做判斷  
try
      DM.buget110.Post;
      DM.BuConnection.CommitTrans;
    except
      on E:Exception do
      begin
        DM.BuConnection.RollbackTrans;
        if Pos('PRIMARY KEY 違反條件約束 ''PK_buget110''。無法在物件 ''buget110'' 上插入重複索引鍵。',E.Message)>0 then //假設當資料重複時資料庫回傳的錯誤訊有以上字串....
          raise Exception.Create('新增的資料已經存在')
        else
          raise Exception.Create('資料儲存失敗,錯誤訊息如下:'#13 E.message);
      end;
    end; 
~~應無所住而生其心~~
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-16 01:01:08 IP:63.211.xxx.xxx 未訂閱
多謝 stillalive&Terrychen 兩未提供的方式,我會試試看 James
系統時間:2024-06-29 20:42:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!