診斷處理規則
SQLGetDiagRec 和 SQLGetDiagField 中的診斷處理受以下規則管轄。
對於所有 ODBC 元件:
不得取代、變更或屏蔽從另一個 ODBC 元件收到的錯誤或警告。
收到來自其他 ODBC 元件的診斷訊息時,可以新增一個額外的狀態記錄。 新增的記錄必須將實際資訊值加到原始訊息。
對於直接連接資料來源的 ODBC 元件:
必須在其從資料來源接收的診斷訊息前加上其廠商識別碼、元件識別碼和資料來源的識別碼。
必須保留資料來源的原生錯誤碼。
必須保留資料來源的診斷訊息。
對於任何產生與資料來源無關之錯誤或警告的 ODBC 元件:
必須針對錯誤或警告提供正確的 SQLSTATE。
必須產生診斷訊息的文字。
必須在診斷訊息前面加上其廠商識別碼和元件識別碼。
如果有可用且有意義的原生錯誤碼,則必須傳回。
對於連接驅動程式管理員的 ODBC 元件:
必須初始化 SQLGetDiagRec 和 SQLGetDiagField 的輸出引數。
呼叫該函式時,必須將診斷資訊作為 SQLGetDiagRec 和 SQLGetDiagField 的輸出引數進行格式化並傳回。
對於驅動程式管理員以外的 ODBC 元件:
- 必須根據原生錯誤設定 SQLSTATE。 對於檔案型驅動程式和不使用閘道的 DBMS 型驅動程式,驅動程式必須設定 SQLSTATE。 對於使用閘道的 DBMS 型驅動程式,驅動程式或支援 ODBC 的閘道都可以設定 SQLSTATE。