診断レコード

各環境、接続、ステートメント、および記述子ハンドルに関連付けられているのは、診断レコードです。 これらのレコードは、特定のハンドルを使用して呼び出された直前の関数に関する診断情報を含んでいます。 レコードは、そのハンドルを使用して別の関数が呼び出された場合にのみ置き換えられます。 一度に保存できる診断レコードの数に制限はありません。

診断レコードには、ヘッダー レコードと 0 個以上の状態レコードの 2 種類があります。 ヘッダー レコードはレコード 0 です。レコード 1 以降が状態レコードになります。 診断レコードは、ヘッダー レコードとステータス レコードごとに異なる複数の個別のフィールドで構成されます。 また、ODBC コンポーネントでは、診断レコードに独自のフィールドを定義することもできます。

診断レコードは構造体と考えることができますが、実際には構造である必要はありません。ドライバーが診断情報を格納する方法はドライバー固有です。

診断レコードのフィールドは、SQLGetDiagField を使用して 取得されます。 状態レコードの SQLSTATE、ネイティブ エラー番号、診断メッセージ フィールドは、SQLGetDiagRec を使用して 1 回の呼び出しで取得できます。

このセクションでは、次のトピックを扱います。