SQLGetDiagFieldSQLGetDiagField

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

SQL ServerSQL Server Native Client ODBC ドライバーの次の追加の診断フィールドを指定するSQLGetDiagFieldします。The SQL ServerSQL Server Native Client ODBC driver specifies the following additional diagnostics fields for SQLGetDiagField. これらのフィールドでは、SQL ServerSQL Server アプリケーションに関する各種エラー報告がサポートされます。また、これらのフィールドは、接続されている ODBC 接続ハンドルや ODBC ステートメント ハンドルで生成されるすべての診断レコードで使用できます。These fields support rich error reporting for SQL ServerSQL Server applications and are available in all diagnostics records generated on connected ODBC connection handles and ODBC statement handles. これらのフィールドは、sqlncli.h で定義されています。The fields are defined in sqlncli.h.

診断レコードのフィールドDiagnostics record field 説明Description
SQL_DIAG_SS_LINESQL_DIAG_SS_LINE ストアド プロシージャのエラーが発生した行番号を報告します。Reports the line number of a stored procedure generating an error. SQL_DIAG_SS_LINE の値は、SQL_DIAG_SS_PROCNAME に値が返される場合にのみ意味があります。The value of SQL_DIAG_SS_LINE is meaningful only if SQL_DIAG_SS_PROCNAME returns a value. この値は、16 ビットの符号なし整数で返されます。The value is returned as an unsigned, 16-bit integer.
SQL_DIAG_SS_MSGSTATESQL_DIAG_SS_MSGSTATE エラー メッセージの状態。The state of an error message. エラー メッセージの状態については、次を参照してください。 RAISERRORします。For information about the error message state, see RAISERROR. この値は、32 ビットの符号付き整数で返されます。The value is returned as a signed, 32-bit integer.
SQL_DIAG_SS_PROCNAMESQL_DIAG_SS_PROCNAME エラーが発生したストアド プロシージャの名前 (該当する場合)。Name of the stored procedure generating an error, if appropriate. この値は文字列で返されます。The value is returned as a character string. この文字列の長さ (文字数) は、SQL ServerSQL Server のバージョンによって異なります。The length of the string (in characters) depends on the version of the SQL ServerSQL Server. 呼び出すことによって判断できるSQLGetInfo SQL_MAX_PROCEDURE_NAME_LEN の値を要求します。It can be determined by calling SQLGetInfo requesting the value for SQL_MAX_PROCEDURE_NAME_LEN.
SQL_DIAG_SS_SEVERITYSQL_DIAG_SS_SEVERITY 関連付けられたエラー メッセージの重大度レベル。The severity level of the associated error message. この値は、32 ビットの符号付き整数で返されます。The value is returned as a signed, 32-bit integer.
SQL_DIAG_SS_SRVNAMESQL_DIAG_SS_SRVNAME エラーが発生したサーバーの名前。The name of the server on which the error occurred. この値は文字列で返されます。The value is returned as a character string. この文字列の長さ (文字列) は、sqlncli.h の SQL_MAX_SQLSERVERNAME マクロで定義されます。The length of the string (in characters) is defined by the SQL_MAX_SQLSERVERNAME macro in sqlncli.h.

文字データを含む SQL ServerSQL Server 固有の診断フィールドの SQL_DIAG_SS_PROCNAME と SQL_DIAG_SS_SRVNAME では、NULL で終わる ANSI 文字列または Unicode 文字列としてデータをクライアントに返します。SQL ServerSQL Server-specific diagnostic fields that contain character data, SQL_DIAG_SS_PROCNAME and SQL_DIAG_SS_SRVNAME, return that data to the client as null terminated, ANSI, or Unicode strings. 必要に応じて、文字数を文字幅で調整する必要があります。If necessary, the count of characters should be adjusted by the character width. また、TCHAR や SQLTCHAR などの移植可能な C データ型を使用して、プログラム変数の適切な長さを保証できます。Alternately, a portable C data type such as TCHAR or SQLTCHAR can be used to ensure correct program variable length.

SQL ServerSQL Server Native Client ODBC ドライバーでは、次の補足の動的機能コードが報告されます。この動的機能コードでは、最後に試行された SQL ServerSQL Server ステートメントが特定されます。The SQL ServerSQL Server Native Client ODBC driver reports the following additional dynamic function codes that identify the last attempted SQL ServerSQL Server statement. 動的機能コードは、診断レコード セットのヘッダー (レコード 0) に返されるので、各実行が成功しても失敗しても参照できます。The dynamic function code is returned in the header (record 0) of the diagnostics record set and is therefore available on every execution (successful or not).

動的機能コードDynamic function code SourceSource
SQL_DIAG_DFC_SS_ALTER_DATABASESQL_DIAG_DFC_SS_ALTER_DATABASE ALTER DATABASE ステートメントALTER DATABASE statement
SQL_DIAG_DFC_SS_CHECKPOINTSQL_DIAG_DFC_SS_CHECKPOINT CHECKPOINT ステートメントCHECKPOINT statement
SQL_DIAG_DFC_SS_CONDITIONSQL_DIAG_DFC_SS_CONDITION ステートメントの WHERE 句または HAVING 句でエラーが発生Error arose in the WHERE or HAVING clauses of a statement.
SQL_DIAG_DFC_SS_CREATE_DATABASESQL_DIAG_DFC_SS_CREATE_DATABASE CREATE DATABASE ステートメントCREATE DATABASE statement
SQL_DIAG_DFC_SS_CREATE_DEFAULTSQL_DIAG_DFC_SS_CREATE_DEFAULT CREATE DEFAULT ステートメントCREATE DEFAULT statement
SQL_DIAG_DFC_SS_CREATE_PROCEDURESQL_DIAG_DFC_SS_CREATE_PROCEDURE CREATE PROCEDURE ステートメントCREATE PROCEDURE statement
SQL_DIAG_DFC_SS_CREATE_RULESQL_DIAG_DFC_SS_CREATE_RULE CREATE RULE ステートメントCREATE RULE statement
SQL_DIAG_DFC_SS_CREATE_TRIGGERSQL_DIAG_DFC_SS_CREATE_TRIGGER CREATE TRIGGER ステートメントCREATE TRIGGER statement
SQL_DIAG_DFC_SS_CURSOR_DECLARESQL_DIAG_DFC_SS_CURSOR_DECLARE DECLARE CURSOR ステートメントDECLARE CURSOR statement
SQL_DIAG_DFC_SS_CURSOR_OPENSQL_DIAG_DFC_SS_CURSOR_OPEN OPEN ステートメントOPEN statement
SQL_DIAG_DFC_SS_CURSOR_FETCHSQL_DIAG_DFC_SS_CURSOR_FETCH FETCH ステートメントFETCH statement
SQL_DIAG_DFC_SS_CURSOR_CLOSESQL_DIAG_DFC_SS_CURSOR_CLOSE CLOSE ステートメントCLOSE statement
SQL_DIAG_DFC_SS_DEALLOCATE_CURSORSQL_DIAG_DFC_SS_DEALLOCATE_CURSOR DEALLOCATE ステートメントDEALLOCATE statement
SQL_DIAG_DFC_SS_DBCCSQL_DIAG_DFC_SS_DBCC DBCC ステートメントDBCC statement
SQL_DIAG_DFC_SS_DENYSQL_DIAG_DFC_SS_DENY DENY ステートメントDENY statement
SQL_DIAG_DFC_SS_DROP_DATABASESQL_DIAG_DFC_SS_DROP_DATABASE DROP DATABASE ステートメントDROP DATABASE statement
SQL_DIAG_DFC_SS_DROP_DEFAULTSQL_DIAG_DFC_SS_DROP_DEFAULT DROP DEFAULT ステートメントDROP DEFAULT statement
SQL_DIAG_DFC_SS_DROP_PROCEDURESQL_DIAG_DFC_SS_DROP_PROCEDURE DROP PROCEDURE ステートメントDROP PROCEDURE statement
SQL_DIAG_DFC_SS_DROP_RULESQL_DIAG_DFC_SS_DROP_RULE DROP RULE ステートメントDROP RULE statement
SQL_DIAG_DFC_SS_DROP_TRIGGERSQL_DIAG_DFC_SS_DROP_TRIGGER DROP TRIGGER ステートメントDROP TRIGGER statement
SQL_DIAG_DFC_SS_DUMP_DATABASESQL_DIAG_DFC_SS_DUMP_DATABASE BACKUP DATABASE ステートメントまたは DUMP DATABASE ステートメントBACKUP or DUMP DATABASE statement
SQL_DIAG_DFC_SS_DUMP_TABLESQL_DIAG_DFC_SS_DUMP_TABLE DUMP TABLE ステートメントDUMP TABLE statement
SQL_DIAG_DFC_SS_DUMP_TRANSACTIONSQL_DIAG_DFC_SS_DUMP_TRANSACTION BACKUP TRANSACTION ステートメントまたは DUMP TRANSACTION ステートメント。BACKUP or DUMP TRANSACTION statement. 場合に、CHECKPOINT ステートメントに対しても返されます、 trunc. log 間接的にします。Also returned for a CHECKPOINT statement if the trunc. log on chkpt. データベース オプションがオンでします。database option is on.
SQL_DIAG_DFC_SS_GOTOSQL_DIAG_DFC_SS_GOTO GOTO 流れ制御ステートメントGOTO control-of-flow statement
SQL_DIAG_DFC_SS_INSERT_BULKSQL_DIAG_DFC_SS_INSERT_BULK INSERT BULK ステートメントINSERT BULK statement
SQL_DIAG_DFC_SS_KILLSQL_DIAG_DFC_SS_KILL KILL ステートメントKILL statement
SQL_DIAG_DFC_SS_LOAD_DATABASESQL_DIAG_DFC_SS_LOAD_DATABASE LOAD DATABASE ステートメントまたは RESTORE DATABASE ステートメントLOAD or RESTORE DATABASE statement
SQL_DIAG_DFC_SS_LOAD_HEADERONLYSQL_DIAG_DFC_SS_LOAD_HEADERONLY LOAD HEADERONLY ステートメントまたは RESTORE HEADERONLY ステートメントLOAD or RESTORE HEADERONLY statement
SQL_DIAG_DFC_SS_LOAD_TABLESQL_DIAG_DFC_SS_LOAD_TABLE LOAD TABLE ステートメントLOAD TABLE statement
SQL_DIAG_DFC_SS_LOAD_TRANSACTIONSQL_DIAG_DFC_SS_LOAD_TRANSACTION LOAD TRANSACTION ステートメントまたは RESTORE TRANSACTION ステートメントLOAD or RESTORE TRANSACTION statement
SQL_DIAG_DFC_SS_PRINTSQL_DIAG_DFC_SS_PRINT PRINT ステートメントPRINT statement
SQL_DIAG_DFC_SS_RAISERRORSQL_DIAG_DFC_SS_RAISERROR RAISERROR ステートメントRAISERROR statement
SQL_DIAG_DFC_SS_READTEXTSQL_DIAG_DFC_SS_READTEXT READTEXT ステートメントREADTEXT statement
SQL_DIAG_DFC_SS_RECONFIGURESQL_DIAG_DFC_SS_RECONFIGURE RECONFIGURE ステートメントRECONFIGURE statement
SQL_DIAG_DFC_SS_RETURNSQL_DIAG_DFC_SS_RETURN RETURN 流れ制御ステートメントRETURN control-of-flow statement
SQL_DIAG_DFC_SS_SELECT_INTOSQL_DIAG_DFC_SS_SELECT_INTO SELECT INTO ステートメントSELECT INTO statement
SQL_DIAG_DFC_SS_SETSQL_DIAG_DFC_SS_SET SET ステートメント (すべての一般的なオプション)SET statement (generic, all options)
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERTSQL_DIAG_DFC_SS_SET_IDENTITY_INSERT SET IDENTITY_INSERT ステートメントSET IDENTITY_INSERT statement
SQL_DIAG_DFC_SS_SET_ROW_COUNTSQL_DIAG_DFC_SS_SET_ROW_COUNT SET ROWCOUNT ステートメントSET ROWCOUNT statement
SQL_DIAG_DFC_SS_SET_STATISTICSSQL_DIAG_DFC_SS_SET_STATISTICS SET STATISTICS IO ステートメントまたは SET STATISTICS TIME ステートメントSET STATISTICS IO or SET STATISTICS TIME statements
SQL_DIAG_DFC_SS_SET_TEXTSIZESQL_DIAG_DFC_SS_SET_TEXTSIZE SET TEXTSIZE ステートメントSET TEXTSIZE statement
SQL_DIAG_DFC_SS_SETUSERSQL_DIAG_DFC_SS_SETUSER SETUSER ステートメントSETUSER statement
SQL_DIAG_DFC_SS_SET_XCTLVLSQL_DIAG_DFC_SS_SET_XCTLVL SET TRANSACTION ISOLATION LEVEL ステートメントSET TRANSACTION ISOLATION LEVEL statement
SQL_DIAG_DFC_SS_SHUTDOWNSQL_DIAG_DFC_SS_SHUTDOWN SHUTDOWN ステートメントSHUTDOWN statement
SQL_DIAG_DFC_SS_TRANS_BEGINSQL_DIAG_DFC_SS_TRANS_BEGIN BEGIN TRAN ステートメントBEGIN TRAN statement
SQL_DIAG_DFC_SS_TRANS_COMMITSQL_DIAG_DFC_SS_TRANS_COMMIT COMMIT TRAN ステートメントCOMMIT TRAN statement
SQL_DIAG_DFC_SS_TRANS_PREPARESQL_DIAG_DFC_SS_TRANS_PREPARE 分散トランザクションをコミットするための準備ステートメントPrepare to commit a distributed transaction
SQL_DIAG_DFC_SS_TRANS_ROLLBACKSQL_DIAG_DFC_SS_TRANS_ROLLBACK ROLLBACK TRAN ステートメントROLLBACK TRAN statement
SQL_DIAG_DFC_SS_TRANS_SAVESQL_DIAG_DFC_SS_TRANS_SAVE SAVE TRAN ステートメントSAVE TRAN statement
SQL_DIAG_DFC_SS_TRUNCATE_TABLESQL_DIAG_DFC_SS_TRUNCATE_TABLE TRUNCATE TABLE ステートメントTRUNCATE TABLE statement
SQL_DIAG_DFC_SS_UPDATE_STATISTICSSQL_DIAG_DFC_SS_UPDATE_STATISTICS UPDATE STATISTICS ステートメントUPDATE STATISTICS statement
SQL_DIAG_DFC_SS_UPDATETEXTSQL_DIAG_DFC_SS_UPDATETEXT UPDATETEXT ステートメントUPDATETEXT statement
SQL_DIAG_DFC_SS_USESQL_DIAG_DFC_SS_USE USE ステートメントUSE statement
SQL_DIAG_DFC_SS_WAITFORSQL_DIAG_DFC_SS_WAITFOR WAITFOR 流れ制御ステートメントWAITFOR control-of-flow statement
SQL_DIAG_DFC_SS_WRITETEXTSQL_DIAG_DFC_SS_WRITETEXT WRITETEXT ステートメントWRITETEXT statement

SQLGetDiagField とテーブル値パラメーターSQLGetDiagField and Table-Valued Parameters

2 つの診断フィールドを取得するのには、SQLGetDiagField を使用できます。SQL_DIAG_SS_TABLE_COLUMN_NUMBER および SQL_DIAG_SS_TABLE_ROW_NUMBER します。SQLGetDiagField can be used to retrieve two diagnostic fields: SQL_DIAG_SS_TABLE_COLUMN_NUMBER and SQL_DIAG_SS_TABLE_ROW_NUMBER. これらのフィールドは、診断レコードに関連するエラーまたは警告の原因となった値を特定するのに役立ちます。These fields help you determine which value caused the error or warning associated with the diagnostic record.

テーブル値パラメーターの詳細については、次を参照してください。テーブル値パラメーター (ODBC)します。For more information about table-valued parameters, see Table-Valued Parameters (ODBC).

参照See Also

SQLGetDiagField 関数 SQLGetDiagField Function
ODBC API 実装の詳細ODBC API Implementation Details