Поделиться через


SQLGetDiagField

В драйвере ODBC для собственного клиента SQL Server заданы следующие дополнительные поля для функции 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

Имя сервера, на котором произошла ошибка. Значение возвращается как символьная строка. Длина строки (в символах) задается макросом SQL_MAX_SQLSERVERNAME в файле sqlncli.h.

Специальные диагностические поля SQL Server, содержащие символьные данные, SQL_DIAG_SS_PROCNAME и SQL_DIAG_SS_SRVNAME, возвращают эти данные клиенту как строки в 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 on 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 Server 2008) диагностических полей: SQL_DIAG_SS_TABLE_COLUMN_NUMBER и SQL_DIAG_SS_TABLE_ROW_NUMBER. Эти поля помогают определить, какое значение вызвало ошибку или предупреждение, связанное с диагностической записью.

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

См. также

Основные понятия

Другие ресурсы