Подробные сведения об ошибках 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. Идентичен значению, возвращаемому в параметре plNativeError метода ISQLErrorInfo::GetSQLInfo.

bState

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

bClass

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

wLineNumber

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

См. также

Справочник

RAISERROR (Transact-SQL)

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

Ошибки