Error 物件

包含與提供者相關的單一作業相關資料存取錯誤的詳細資料。

備註

任何涉及 ADO 物件的作業都可能會產生一或多個提供者錯誤。 每個錯誤發生時,都會有一或多個 Error 物件放在 Connection (英文) 物件的 Errors (英文) 集合中。 當另一個 ADO 作業產生錯誤時,就會清除 Errors 集合,並可將新的 Error 物件集放在 Errors 集合中。

注意

每個 Error 物件都代表特定提供者錯誤,而不是 ADO 錯誤。 ADO 錯誤會公開給執行階段例外狀況處理機制。 例如,在 Microsoft Visual Basic 中,發生 ADO 特定錯誤會觸發 On Error 事件,並顯示在 Error 物件中。 如需 ADO 錯誤的完整清單,請參閱 ErrorValueEnum (英文) 主題。

您可以讀取 Error 物件的屬性,以取得每個錯誤的特定詳細資料,包括下列各項:

  • Description (部分機器翻譯) 屬性,其中包含錯誤的文字。 這是預設屬性。

  • Number (部分機器翻譯) 屬性,其中包含錯誤常數的 Long 整數值。

  • Source (部分機器翻譯) 屬性,其能識別引發錯誤的物件。 當您在對資料來源提出要求之後,並於 Errors 集合中有數個 Error 物件時,這特別有用。

  • SQLState (部分機器翻譯) 與 NativeError (部分機器翻譯) 屬性,其可提供來自 SQL 資料來源的資訊。

發生提供者錯誤時,其會放在 Connection 物件的 Errors 集合中。 ADO 支援由單一 ADO 作業傳回多個錯誤,以允許提供者特定的錯誤資訊。 若要在錯誤處理常式中取得這個豐富的錯誤資訊,請使用您正在使用之語言或環境的適當錯誤捕捉功能,然後使用巢狀迴圈來列舉 Errors 集合中每個 Error 物件的屬性。

注意

Microsoft Visual Basic 和 VBScript 使用者 如果沒有有效的 Connection 物件,您必須從 Error 物件擷取錯誤資訊。

如同提供者所做的一樣,ADO 會先清除 OLE Error Info 物件,再進行可能會產生新提供者錯誤的呼叫。 不過,只有在提供者產生新錯誤,或呼叫 Clear (部分機器翻譯) 方法時,才會清除並填入 Connection 物件上的 Errors 集合。

某些屬性與方法會傳回警告,這些警告會顯示為 Errors 集合中的 Error 物件,但不會停止程式的執行。 無論是在 Recordset 物件上呼叫 ResyncUpdateBatchCancelBatch 方法;在 Connection 物件上呼叫 Open 方法,還是在 Recordset 物件上設定 Filter 屬性,在開始之前,請先在 Errors 集合上呼叫 Clear 方法。 如此一來,您就可以讀取 Errors 集合的 Count (部分機器翻譯) 屬性,以測試傳回的警告。

Error 物件對於撰寫指令碼而言並不安全。

此節包含下列主題。

另請參閱

Description、HelpContext、HelpFile、NativeError、Number、Source 和 SQLState 屬性範例 (VB)
Description、HelpContext、HelpFile、NativeError、Number、Source 和 SQLState 屬性範例 (VC++) (部分機器翻譯)
Connection 物件 (ADO)
Errors 集合 (ADO)
附錄 A:提供者