共用方式為


診斷處理規則

SQLGetDiagRecSQLGetDiagField 中的診斷處理受以下規則管轄。

對於所有 ODBC 元件:

  • 不得取代、變更或屏蔽從另一個 ODBC 元件收到的錯誤或警告。

  • 收到來自其他 ODBC 元件的診斷訊息時,可以新增一個額外的狀態記錄。 新增的記錄必須將實際資訊值加到原始訊息。

對於直接連接資料來源的 ODBC 元件:

  • 必須在其從資料來源接收的診斷訊息前加上其廠商識別碼、元件識別碼和資料來源的識別碼。

  • 必須保留資料來源的原生錯誤碼。

  • 必須保留資料來源的診斷訊息。

對於任何產生與資料來源無關之錯誤或警告的 ODBC 元件:

  • 必須針對錯誤或警告提供正確的 SQLSTATE。

  • 必須產生診斷訊息的文字。

  • 必須在診斷訊息前面加上其廠商識別碼和元件識別碼。

  • 如果有可用且有意義的原生錯誤碼,則必須傳回。

對於連接驅動程式管理員的 ODBC 元件:

  • 必須初始化 SQLGetDiagRecSQLGetDiagField 的輸出引數。

  • 呼叫該函式時,必須將診斷資訊作為 SQLGetDiagRecSQLGetDiagField 的輸出引數進行格式化並傳回。

對於驅動程式管理員以外的 ODBC 元件:

  • 必須根據原生錯誤設定 SQLSTATE。 對於檔案型驅動程式和不使用閘道的 DBMS 型驅動程式,驅動程式必須設定 SQLSTATE。 對於使用閘道的 DBMS 型驅動程式,驅動程式或支援 ODBC 的閘道都可以設定 SQLSTATE。