請問如何獲得預存程序中錯誤後的資料!謝謝

來源:互聯網
上載者:User
請問如何獲得預存程序中錯誤後的資料!謝謝 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061223113858148.html
我有一個預存程序,執行過程中要是@@error不為0的時候會返回一個錯誤資訊的結果集.例如不能插入重複鍵的時候,我會:  
  select   -1,'已經有相同的使用者註冊了!請重選擇另外一個使用者名稱!'  
  我在查詢分析器裡面執行完這個預存程序,如果真出現這個錯誤,它是有這個結果集產生的,同時它也會拋出異常.在delphi中用Tadoquery控制項執行這個預存程序,系統會檢測出這個錯誤,同時在那裡停止,不再執行下一步了.我如何才能讓它不出錯,而且擷取到那個預存程序返回的錯誤集合:  
  "-1,'已經有相同的使用者註冊了!請重選擇另外一個使用者名稱!'"  
  ,並對那個集合進行判斷,來做我應該做的事?

2000裡面無法屏蔽掉sql自己拋出的錯誤.  
   
  2005可以用try   catch,   這樣可以自己來決定錯誤處理方式  
   
   
  無論是2000還是2005,   嚴重的錯誤始終會終止處理

我是這樣處理的可以有效地幹掉你說的重複鍵這樣的問題:  
  N1:=0;  
  TRY  
      <執行插入語句>  
  EXCEPT  
      N1:=1;  
  END;  
  IF   N1=1   THEN  
        BEGIN  
              <這裡表示出出錯的資訊>  
        END;

謝謝各位的捧場!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.