診断の処理規則
次の規則は、SQLGetDiagRec と SQLGetDiagField の診断処理を制御します。
すべての ODBC コンポーネント:
別の ODBC コンポーネントから受信したエラーや警告を置換、変更、マスクすることはできません。
別の ODBC コンポーネントから診断メッセージを受信したときに、追加の状態レコードを追加できます。 追加されたレコードは、元のメッセージに実際の情報値を追加する必要があります。
データ ソースに直接インターフェイスする ODBC コンポーネントの場合:
ベンダー識別子、コンポーネント識別子、およびデータ ソースの識別子に、データ ソースから受信する診断メッセージの前にプレフィックスを付ける必要があります。
データ ソースのネイティブ エラー コードを保持する必要があります。
データ ソースの診断メッセージを保持する必要があります。
データ ソースに依存しないエラーまたは警告を生成する ODBC コンポーネントの場合:
エラーまたは警告に対して正しい SQLSTATE を指定する必要があります。
診断メッセージのテキストを生成する必要があります。
診断メッセージにベンダー識別子とそのコンポーネント識別子のプレフィックスを付ける必要があります。
ネイティブ エラー コードが使用可能で意味がある場合は、返す必要があります。
ドライバー マネージャーとインターフェイスする ODBC コンポーネントの場合:
SQLGetDiagRec と SQLGetDiagField の出力引数を初期化する必要があります。
その関数が呼び出されたときに、診断情報を SQLGetDiagRec および SQLGetDiagField の出力引数として書式設定して返す必要があります。
ドライバー マネージャー以外の 1 つの ODBC コンポーネントの場合:
- ネイティブ エラーに基づいて SQLSTATE を設定する必要があります。 ゲートウェイを使用しないファイル ベースのドライバーと DBMS ベースのドライバーの場合、ドライバーは SQLSTATE を設定する必要があります。 ゲートウェイを使用する DBMS ベースのドライバーの場合、ODBC をサポートするドライバーまたはゲートウェイで SQLSTATE を設定できます。