診断の処理規則

次の規則は、SQLGetDiagRecSQLGetDiagField の診断処理を制御します。

すべての ODBC コンポーネント:

  • 別の ODBC コンポーネントから受信したエラーや警告を置換、変更、マスクすることはできません。

  • 別の ODBC コンポーネントから診断メッセージを受信したときに、追加の状態レコードを追加できます。 追加されたレコードは、元のメッセージに実際の情報値を追加する必要があります。

データ ソースに直接インターフェイスする ODBC コンポーネントの場合:

  • ベンダー識別子、コンポーネント識別子、およびデータ ソースの識別子に、データ ソースから受信する診断メッセージの前にプレフィックスを付ける必要があります。

  • データ ソースのネイティブ エラー コードを保持する必要があります。

  • データ ソースの診断メッセージを保持する必要があります。

データ ソースに依存しないエラーまたは警告を生成する ODBC コンポーネントの場合:

  • エラーまたは警告に対して正しい SQLSTATE を指定する必要があります。

  • 診断メッセージのテキストを生成する必要があります。

  • 診断メッセージにベンダー識別子とそのコンポーネント識別子のプレフィックスを付ける必要があります。

  • ネイティブ エラー コードが使用可能で意味がある場合は、返す必要があります。

ドライバー マネージャーとインターフェイスする ODBC コンポーネントの場合:

  • SQLGetDiagRecSQLGetDiagField の出力引数を初期化する必要があります。

  • その関数が呼び出されたときに、診断情報を SQLGetDiagRec および SQLGetDiagField の出力引数として書式設定して返す必要があります。

ドライバー マネージャー以外の 1 つの ODBC コンポーネントの場合:

  • ネイティブ エラーに基づいて SQLSTATE を設定する必要があります。 ゲートウェイを使用しないファイル ベースのドライバーと DBMS ベースのドライバーの場合、ドライバーは SQLSTATE を設定する必要があります。 ゲートウェイを使用する DBMS ベースのドライバーの場合、ODBC をサポートするドライバーまたはゲートウェイで SQLSTATE を設定できます。