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)」を参照してください。