SQLGetDiagField

Применимо:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azureazure Synapse Analytics AnalyticsPlatform System (PDW)

Драйвер ODBC собственного клиента SQL Server указывает следующие дополнительные поля диагностика для SQLGetDiagField. Эти поля поддерживают расширенные отчеты об ошибках для приложений SQL Server и доступны во всех диагностика записях, созданных на подключенных дескрипторах подключений ODBC и дескрипторах инструкций ODBC. Эти поля определены в файле sqlncli.h.

Поля диагностических записей Description
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 Имя сервера, на котором произошла ошибка. Значение возвращается как символьная строка. Длина строки (в символах) задается макросом SQL_MAX_SQLSERVERNAME в файле sqlncli.h.

Поля диагностики, относящиеся к SQL Server, содержащие символьные данные, SQL_DIAG_SS_PROCNAME и SQL_DIAG_SS_SRVNAME, возвращают эти данные клиенту в виде завершающихся значений NULL, ANSI или строк Юникода. Если необходимо, счетчик символов должен быть изменен с учетом ширины символа. Также можно использовать переносимый тип данных C, такой как TCHAR или SQLTCHAR, чтобы удостовериться, что программная переменная имеет правильную длину.

Драйвер ODBC собственного клиента SQL Server сообщает следующие дополнительные динамические коды функций, которые определяют последнюю попытку инструкции 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или оператор DUMP DATABASE
SQL_DIAG_DFC_SS_DUMP_TABLE Оператор DUMP TABLE
SQL_DIAG_DFC_SS_DUMP_TRANSACTION BACKUP или выписку DUMP TRANSACTION. Также возвращается для инструкции CHECKPOINT, если trunc. log в chkpt. Параметр базы данных включен.
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 или RESTOREDATABASE оператор
SQL_DIAG_DFC_SS_LOAD_HEADERONLY LOAD или RESTORE HEADERONLY оператор
SQL_DIAG_DFC_SS_LOAD_TABLE Оператор LOAD TABLE
SQL_DIAG_DFC_SS_LOAD_TRANSACTION Отчет LOAD или 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 SET STATISTICS IO или SETSET 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 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. Эти поля помогают определить, какое значение вызвало ошибку или предупреждение, связанные с диагностической записью.

Дополнительные сведения о табличном значении параметров см. в разделе "Параметры с табличным значением" (ODBC).