SQLGetDiagField

SQL Server Native Client ODBC ドライバでは、SQLGetDiagField 用に次の追加診断フィールドが指定されます。これらのフィールドでは、SQL Server アプリケーションに関する各種エラー報告がサポートされます。また、これらのフィールドは、接続されている ODBC 接続ハンドルや ODBC ステートメント ハンドルで生成されるすべての診断レコードで使用できます。これらのフィールドは、sqlncli.h で定義されています。

診断レコードのフィールド

説明

SQL_DIAG_SS_LINE

ストアド プロシージャのエラーが発生した行番号を報告します。SQL_DIAG_SS_LINE の値は、SQL_DIAG_SS_PROCNAME に値が返される場合にのみ意味があります。この値は、16 ビットの符号なし整数で返されます。

SQL_DIAG_SS_MSGSTATE

エラー メッセージの状態。エラー メッセージの状態の詳細については、「RAISERROR」を参照してください。この値は、32 ビットの符号付き整数で返されます。

SQL_DIAG_SS_PROCNAME

エラーが発生したストアド プロシージャの名前 (該当する場合)。この値は文字列で返されます。この文字列の長さ (文字数) は、SQL Server のバージョンによって異なります。SQLGetInfo を呼び出して、SQL_MAX_PROCEDURE_NAME_LEN の値を要求することで、この長さを判断できます。

SQL_DIAG_SS_SEVERITY

関連付けられたエラー メッセージの重大度レベル。この値は、32 ビットの符号付き整数で返されます。

SQL_DIAG_SS_SRVNAME

エラーが発生したサーバーの名前。この値は文字列で返されます。この文字列の長さ (文字列) は、sqlncli.h の SQL_MAX_SQLSERVERNAME マクロで定義されます。

文字データを含む SQL Server 固有の診断フィールドの SQL_DIAG_SS_PROCNAME と SQL_DIAG_SS_SRVNAME では、NULL で終わる ANSI 文字列または Unicode 文字列としてデータをクライアントに返します。必要に応じて、文字数を文字幅で調整する必要があります。また、TCHAR や SQLTCHAR などの移植可能な C データ型を使用して、プログラム変数の適切な長さを保証できます。

SQL Server Native Client ODBC ドライバでは、次の補足の動的機能コードが報告されます。この動的機能コードでは、最後に試行された SQL Server ステートメントが特定されます。動的機能コードは、診断レコード セットのヘッダー (レコード 0) に返されるので、各実行が成功しても失敗しても参照できます。

動的機能コード

試行したステートメント

SQL_DIAG_DFC_SS_ALTER_DATABASE

ALTER DATABASE ステートメント

SQL_DIAG_DFC_SS_CHECKPOINT

CHECKPOINT ステートメント

SQL_DIAG_DFC_SS_CONDITION

ステートメントの WHERE 句または HAVING 句でエラーが発生

SQL_DIAG_DFC_SS_CREATE_DATABASE

CREATE DATABASE ステートメント

SQL_DIAG_DFC_SS_CREATE_DEFAULT

CREATE DEFAULT ステートメント

SQL_DIAG_DFC_SS_CREATE_PROCEDURE

CREATE PROCEDURE ステートメント

SQL_DIAG_DFC_SS_CREATE_RULE

CREATE RULE ステートメント

SQL_DIAG_DFC_SS_CREATE_TRIGGER

CREATE TRIGGER ステートメント

SQL_DIAG_DFC_SS_CURSOR_DECLARE

DECLARE CURSOR ステートメント

SQL_DIAG_DFC_SS_CURSOR_OPEN

OPEN ステートメント

SQL_DIAG_DFC_SS_CURSOR_FETCH

FETCH ステートメント

SQL_DIAG_DFC_SS_CURSOR_CLOSE

CLOSE ステートメント

SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR

DEALLOCATE ステートメント

SQL_DIAG_DFC_SS_DBCC

DBCC ステートメント

SQL_DIAG_DFC_SS_DENY

DENY ステートメント

SQL_DIAG_DFC_SS_DROP_DATABASE

DROP DATABASE ステートメント

SQL_DIAG_DFC_SS_DROP_DEFAULT

DROP DEFAULT ステートメント

SQL_DIAG_DFC_SS_DROP_PROCEDURE

DROP PROCEDURE ステートメント

SQL_DIAG_DFC_SS_DROP_RULE

DROP RULE ステートメント

SQL_DIAG_DFC_SS_DROP_TRIGGER

DROP TRIGGER ステートメント

SQL_DIAG_DFC_SS_DUMP_DATABASE

BACKUP DATABASE ステートメントまたは DUMP DATABASE ステートメント

SQL_DIAG_DFC_SS_DUMP_TABLE

DUMP TABLE ステートメント

SQL_DIAG_DFC_SS_DUMP_TRANSACTION

BACKUP TRANSACTION ステートメントまたは DUMP TRANSACTION ステートメント。trunc. log on chkpt. データベース オプションが有効な場合は、CHECKPOINT ステートメントに対しても返されます。

SQL_DIAG_DFC_SS_GOTO

GOTO 流れ制御ステートメント

SQL_DIAG_DFC_SS_INSERT_BULK

INSERT BULK ステートメント

SQL_DIAG_DFC_SS_KILL

KILL ステートメント

SQL_DIAG_DFC_SS_LOAD_DATABASE

LOAD DATABASE ステートメントまたは RESTORE DATABASE ステートメント

SQL_DIAG_DFC_SS_LOAD_HEADERONLY

LOAD HEADERONLY ステートメントまたは RESTORE HEADERONLY ステートメント

SQL_DIAG_DFC_SS_LOAD_TABLE

LOAD TABLE ステートメント

SQL_DIAG_DFC_SS_LOAD_TRANSACTION

LOAD TRANSACTION ステートメントまたは RESTORE TRANSACTION ステートメント

SQL_DIAG_DFC_SS_PRINT

PRINT ステートメント

SQL_DIAG_DFC_SS_RAISERROR

RAISERROR ステートメント

SQL_DIAG_DFC_SS_READTEXT

READTEXT ステートメント

SQL_DIAG_DFC_SS_RECONFIGURE

RECONFIGURE ステートメント

SQL_DIAG_DFC_SS_RETURN

RETURN 流れ制御ステートメント

SQL_DIAG_DFC_SS_SELECT_INTO

SELECT INTO ステートメント

SQL_DIAG_DFC_SS_SET

SET ステートメント (すべての一般的なオプション)

SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT

SET IDENTITY_INSERT ステートメント

SQL_DIAG_DFC_SS_SET_ROW_COUNT

SET ROWCOUNT ステートメント

SQL_DIAG_DFC_SS_SET_STATISTICS

SET STATISTICS IO ステートメントまたは SET STATISTICS TIME ステートメント

SQL_DIAG_DFC_SS_SET_TEXTSIZE

SET TEXTSIZE ステートメント

SQL_DIAG_DFC_SS_SETUSER

SETUSER ステートメント

SQL_DIAG_DFC_SS_SET_XCTLVL

SET TRANSACTION ISOLATION LEVEL ステートメント

SQL_DIAG_DFC_SS_SHUTDOWN

SHUTDOWN ステートメント

SQL_DIAG_DFC_SS_TRANS_BEGIN

BEGIN TRAN ステートメント

SQL_DIAG_DFC_SS_TRANS_COMMIT

COMMIT TRAN ステートメント

SQL_DIAG_DFC_SS_TRANS_PREPARE

分散トランザクションをコミットするための準備ステートメント

SQL_DIAG_DFC_SS_TRANS_ROLLBACK

ROLLBACK TRAN ステートメント

SQL_DIAG_DFC_SS_TRANS_SAVE

SAVE TRAN ステートメント

SQL_DIAG_DFC_SS_TRUNCATE_TABLE

TRUNCATE TABLE ステートメント

SQL_DIAG_DFC_SS_UPDATE_STATISTICS

UPDATE STATISTICS ステートメント

SQL_DIAG_DFC_SS_UPDATETEXT

UPDATETEXT ステートメント

SQL_DIAG_DFC_SS_USE

USE ステートメント

SQL_DIAG_DFC_SS_WAITFOR

WAITFOR 流れ制御ステートメント

SQL_DIAG_DFC_SS_WRITETEXT

WRITETEXT ステートメント

SQLGetDiagField とテーブル値パラメータ

SQLGetDiagField を使用すると、(SQL Server 2008 で追加された) SQL_DIAG_SS_TABLE_COLUMN_NUMBER および SQL_DIAG_SS_TABLE_ROW_NUMBER という 2 つの診断フィールドを取得できます。これらのフィールドは、診断レコードに関連するエラーまたは警告の原因となった値を特定するのに役立ちます。

テーブル値パラメータの詳細については、「テーブル値パラメータ (ODBC)」を参照してください。

関連項目

概念

その他の技術情報