處理ADO操作錯(cuò)誤進(jìn)行介紹說(shuō)明
上回在公司使用ADO操作對(duì)象進(jìn)行操作DataSet實(shí)現(xiàn)更新數(shù)據(jù)庫(kù)具體的實(shí)現(xiàn)方法,只需把下面的代碼清單02添加到代碼清單01之后,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
使用 Number 屬性確定發(fā)生了哪個(gè)錯(cuò)誤。ADO操作屬性的值是與錯(cuò)誤條件對(duì)應(yīng)的***數(shù)字。 Errors 集合以十六進(jìn)制格式(例如 0x80004005)或以 Long 值(例如 2147467259)返回 HRESULT。這些 HRESULT 由基本組件生成,如 OLE DB,甚至是 OLE 本身。
使用 Error 對(duì)象的 Source 屬性以確定最初產(chǎn)生錯(cuò)誤的對(duì)象或應(yīng)用程序的名稱。它可能是對(duì)象的類名稱或編程 ID。對(duì)于 ADO 中的錯(cuò)誤,屬性值將為 ADODB.ObjectName,此 ObjectName 為觸發(fā)錯(cuò)誤的對(duì)象名稱。對(duì)于 ADOX 和 ADO MD,該值將分別為 ADOX.ObjectName 和 ADOMD.ObjectName。ADO操作 基于 Error 對(duì)象的 Source、Number 和 Description 屬性中的錯(cuò)誤文檔,可以編寫(xiě)處理錯(cuò)誤的適當(dāng)代碼。 對(duì)于 Error 對(duì)象,Source 屬性為只讀。 SQLState 屬性。#t#
如果在處理 SQL 語(yǔ)句過(guò)程中發(fā)生錯(cuò)誤,請(qǐng)用 SQLState 屬性讀取提供者返回的五個(gè)字符的錯(cuò)誤代碼。例如,當(dāng)配合使用 Microsoft OLE DB Provider for ODBC 和 Microsoft SQL Server 數(shù)據(jù)庫(kù)時(shí),將根據(jù) ODBC 特有的錯(cuò)誤或 Microsoft SQL Server 生成的錯(cuò)誤從 ODBC 生成 SQL 狀態(tài)錯(cuò)誤代碼,并將錯(cuò)誤代碼映射到 ODBC 錯(cuò)誤上。ADO操作這些錯(cuò)誤代碼在 ANSI SQL 標(biāo)準(zhǔn)中有說(shuō)明,ADO操作但是如果數(shù)據(jù)源不同,其實(shí)現(xiàn)方式也會(huì)不同。 NativeError 屬性 指示給定 Error 對(duì)象的提供者特有的錯(cuò)誤代碼。
使用 NativeError 屬性對(duì)某個(gè) Error 對(duì)象檢索數(shù)據(jù)庫(kù)特有的錯(cuò)誤信息。例如,當(dāng)配合使用 Microsoft ODBC Provider for OLE DB 和 Microsoft SQL Server 數(shù)據(jù)庫(kù)時(shí),ADO操作從 SQL Server 產(chǎn)生的原生錯(cuò)誤代碼將通過(guò) ODBC 和 ODBC Provider 傳遞到 ADO NativeError 屬性。 使用 Errors 集合的 Clear 方法以刪除集合中所有現(xiàn)有的 Error 對(duì)象。發(fā)生錯(cuò)誤時(shí),ADO 將自動(dòng)清空 Errors 集合,并用基于新錯(cuò)誤的 Error 對(duì)象填充集合。
某些屬性和方法返回警告,這些警告顯示為ADO操作集合中的 Error 對(duì)象,但并不終止程序的執(zhí)行。請(qǐng)先調(diào)用 Errors 集合的 Clear 方法,再進(jìn)行如下操作:調(diào)用 Recordset 對(duì)象的 Resync、UpdateBatch 或 CancelBatch 方法;調(diào)用 Connection 對(duì)象的 Open 方法;或設(shè)置 Recordset 對(duì)象的 Filter 屬性。這樣,就可以讀取 Errors 集合的 Count 屬性以測(cè)試返回的警告。