Подробные сведения об ошибках SQL Server

Поставщик OLE DB для собственного клиента SQL Server определяет интерфейс ошибок, зависящих от поставщика ISQLServerErrorInfo. Интерфейс возвращает более подробные сведения об ошибке SQL Server и полезен, если выполнение команды или операции работы с наборами строк завершились с ошибкой.

Существует два способа получения доступа к интерфейсу ISQLServerErrorInfo.

Как показано в следующем примере кода, потребитель может вызвать IErrorRecords::GetCustomerErrorObject для получения указателя на ISQLServerErrorInfo. (Нет необходимости получать ISQLErrorInfo.) ISQLErrorInfo и ISQLServerErrorInfo представляют собой пользовательские объекты ошибок OLE DB, при этом объект ISQLServerErrorInfo является интерфейсом для получения информации об ошибках на сервере, включая такие данные, как имя процедуры и номера строк.

// Get the SQL Server custom error object.if(FAILED(hr=pIErrorRecords->GetCustomErrorObject(   nRec, IID_ISQLServerErrorInfo,   (IUnknown**)&pISQLServerErrorErrorInfo)))

Другой способ получить указатель на ISQLServerErrorInfo состоит в вызове метода QueryInterface для уже полученного указателя на ISQLErrorInfo. Обратите на это внимание, так как ISQLServerErrorInfo содержит надмножество информации, доступной из ISQLErrorInfo, имеет смысл пойти прямо в ISQLServerErrorInfo через GetCustomerErrorObject.

Интерфейс ISQLServerErrorInfo предоставляет одну функцию-член ISQLServerErrorInfo::GetErrorInfo. Функция возвращает указатель на структуру SSERRORINFO и указатель на буфер строк. Оба указателя ссылаются на память, которую потребитель должен освободить при помощи метода IMalloc::Free.

Элементы структуры SSERRORINFO обрабатываются потребителем следующим образом.

Член

Описание

pwszMessage

Сообщение об ошибке SQL Server. Идентично строке, возвращаемой в IErrorInfo::GetDescription.

pwszServer

Имя экземпляра SQL Server для сеанса.

pwszProcedure

При необходимости, имя процедуры, в которой произошла ошибка. Пустая строка в противном случае.

lNative

Номер собственной ошибки SQL Server. Идентичен значению, возвращаемому в параметре plNativeErrorISQLErrorInfo::GetSQLInfo.

bState

Состояние сообщения об ошибке SQL Server.

bClass

Серьезность сообщения об ошибке SQL Server.

wLineNumber

Если возможно, номер строки хранимой процедуры, в которой возникла ошибка.

См. также

Справочник

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