SQLGetDiagField
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform 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 или RESTORE DATABASE |
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 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. Эти поля помогают определить, какое значение вызвало ошибку или предупреждение, связанные с диагностической записью.
Дополнительные сведения о табличном значении параметров см. в разделе "Параметры с табличным значением" (ODBC).
См. также
Функция SQLGetDiagField
Подробные сведения о реализации API-интерфейсов ODBC