Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Система аналитической платформы (PDW)
SQL база данных в Microsoft Fabric
Драйвер OLE DB Driver for 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 обрабатываются потребителем следующим образом.
| Элемент | Description |
|---|---|
| pwszMessage | Сообщение об ошибке SQL Server. Идентично строке, возвращаемой методом IErrorInfo::GetDescription. |
| pwszServer | Имя экземпляра SQL Server для сеанса. |
| pwszProcedure | При необходимости, имя процедуры, в которой произошла ошибка. Пустая строка в противном случае. |
| lNative | Номер собственной ошибки SQL Server. Идентичен значению, возвращаемому в параметре plNativeError метода ISQLErrorInfo::GetSQLInfo. |
| bState | Состояние сообщения об ошибке SQL Server. |
| bClass | Серьезность сообщения об ошибке SQL Server. |
| wLineNumber | Если применимо, номер строки хранимой процедуры, в которой возникла ошибка. |