仕様: | DB2 CLI 5.0 | ODBC 3.0 |
|
SQLGetDiagRec() は、エラー、警告、および状況情報が入っている 診断レコードの SQLSTATE フィールドの現行値を戻します。
接続ハンドルは、この関数の呼び出し前に、SQLAllocHandle() を使用 して割り当てる必要があります。
構文
SQLRETURN SQLGetDiagRec (SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *SQLState, SQLINTEGER *NativeErrorPtr, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLengthPtr);
関数の引き数
データ・タイプ | 引き数 | 用途 | 説明 |
---|---|---|---|
SQLSMALLINT | HandleType | 入力 | 診断が必要なハンドルのタイプについて記述するハンドル・タイプ ID。SQL_HANDLE_STMT または SQL_HANDLE_DBC を取ることができる。 |
SQLHANDLE | Handle | 入力 | HandleType によって示されるタイプの診断データ構造のハンドル。 |
SQLSMALLINT | RecNumber | 入力 | アプリケーションが情報を取り出そうとするための状況レコードを示す。 状況レコードは 1 でなければならない。 |
SQLCHAR | SQLState | 出力 | 診断レコード RecNumber に関する 5 文字の SQLSTATE コードを戻す バッファーへのポインター。最初の 2 文字がクラスを示し、 次の 3 文字がサブクラスを示す。 |
SQLINTEGER | NativeErrorPtr | 出力 | データ・ソースに特定の ネイティブ・エラー・コードを戻すためのバッファーへのポインター。 |
SQLCHAR | MessageText | 出力 | エラー・メッセージ・テキストを戻すためのバッファーへのポインター。 SQLGetDiagRec() によって戻されるフィールドはテキスト・ストリング に含まれる。 |
SQLINTEGER | BufferLength | 入力 | MessageText バッファーの長さ (バイト単位)。 |
SQLSMALLINT | TextLengthPtr | 出力 | MessageText に戻すことができる合計バイト数 (ヌル終了文字に必要 なバイト数を除く) を戻すためのバッファーを指すポインター。 戻すことができるバイト数が BufferLength より大きい場合 、MessageText 内のエラー・メッセージ・テキストは 切り捨てられて、BufferLength からヌル終了文字の長さを引いた文字数になる。 |
使用法
アプリケーションでは一般的に、DB2 CLI 関数への前の呼び出しで SQL_SUCCESS 以外のものが戻された場合に、SQLGetDiagRec() を呼び出しま す。
SQLGetDiagRec() は、診断データ構造レコードの複数のフィールドを 含む文字ストリングを戻します。
DB2 Everyplace バージョン 8.1 では、SQLGetDiagRec() の機能が拡張されました。 57011、HY024、HY092、HY000、HY012 の SQLSTATE を戻すことができるようになりました。 これらの SQLSTATE の詳細については、SQLState のリストを参照してください。
SQLGetDiagRec() は、Handle 引き数に指定したハンドルに 最後に関連付けられた診断情報のみを検索します。アプリケーションで SQLGetDiagRec() 以外の関数を呼び出すと、同じハンドルに 関する前の呼び出しからの診断情報が消失します。
HandleType 引き数
各ハンドル・タイプは関連する診断情報を持つことができます。 HandleType 引き数は Handle のハンドル・タイプを示します。 DB2 Everyplace ではステートメント・ハンドルおよび接続ハンドルをサポートしています。
戻りコード
診断
SQLGetDiagRec() は自身に関するエラー値を通知しません。 この関数は自身の実行の結果を報告するために、以下の戻り値を使用します。
制約事項
なし。
関連した解説