SQLGetDiagField
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
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_DIAG_SS_PROCNAME、SQL_DIAG_SS_SRVNAMEを含む SQL Server 固有の診断フィールドは、そのデータを 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 ステートメント。 また、chkpt. データベース オプションのtrunc. logがオンの場合は、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_DIAG_SS_TABLE_COLUMN_NUMBERとSQL_DIAG_SS_TABLE_ROW_NUMBERの 2 つの診断フィールドを取得できます。 これらのフィールドは、診断レコードに関連するエラーまたは警告の原因となった値を特定するのに役立ちます。
テーブル値パラメーターの詳細については、「 Table-Valued Parameters (ODBC)」を参照してください。