Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Поставщик 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 | Если применимо, номер строки хранимой процедуры, в которой произошла ошибка. |