Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Система аналитической платформы (PDW)
SQL база данных в Microsoft Fabric
Возвращает указатель на структуру OLE DB Driver for SQL Server SSERRORINFO, содержащую сведения об ошибке SQL Server.
OLE DB Driver for SQL Server определяет интерфейс для работы с ошибками ISQLServerErrorInfo. Этот интерфейс возвращает сведения об ошибке SQL Server, включая его серьезность и состояние.
Синтаксис
HRESULT GetErrorInfo(
SSERRORINFO**ppSSErrorInfo,
OLECHAR**ppErrorStrings);
Аргументы
ppSSErrorInfo[out]
Указатель на структуру SSERRORINFO. Если метод завершается ошибкой или нет сведений SQL Server, связанных с ошибкой, поставщик не выделяет память и гарантирует, что аргумент ppSSErrorInfo является пустым указателем на выходные данные.
ppErrorStrings[out]
Указатель на Юникод-указатель символьной строки. Если метод завершается ошибкой или нет сведений SQL Server, связанных с ошибкой, поставщик не выделяет память и гарантирует, что аргумент ppErrorStrings является пустым указателем на выходные данные. При освобождении аргумента ppErrorStrings с помощью метода IMalloc::Free высвобождаются три индивидуальных строковых компонента возвращенной структуры SSERRORINFO, так как память выделяется одним блоком.
Значения кода возврата
S_OK
Метод выполнен успешно.
E_INVALIDARG
Один из аргументов ppSSErrorInfo или ppErrorStrings имел значение NULL.
E_OUTOFMEMORY
OLE DB Driver for SQL Server не удалось выделить достаточный объем памяти для завершения запроса.
Замечания
Драйвер OLE DB для SQL Server выделяет память для строк SSERRORINFO и OLECHAR, которые возвращаются переданными потребителем указателями. Пользователь должен освободить эту память с помощью метода IMalloc::Free, когда последнему уже не будет требоваться доступ к данным ошибки.
Структура SSERRORINFO определена следующим образом.
typedef struct tagSSErrorInfo
{
LPOLESTR pwszMessage;
LPOLESTR pwszServer;
LPOLESTR pwszProcedure;
LONG lNative;
BYTE bState;
BYTE bClass;
WORD wLineNumber;
}
SSERRORINFO;
| Элемент | Description |
|---|---|
| pwszMessage | Сообщение об ошибке из SQL Server. Это сообщение возвращается с помощью метода IErrorInfo::GetDescription. |
| pwszServer | Имя экземпляра SQL Server, на котором произошла ошибка. |
| pwszProcedure | Имя сформировавшей ошибку хранимой процедуры, если эта ошибка произошла в хранимой процедуре; иначе пустая строка. |
| lNative | Номер ошибки SQL Server. Номер ошибки идентичен номеру, возвращаемому в параметре plNativeError метода ISQLErrorInfo::GetSQLInfo. |
| bState | Состояние ошибки SQL Server. |
| bClass | Серьезность ошибки SQL Server. |
| wLineNumber | Если применимо, строка хранимой процедуры SQL Server, создающая сообщение об ошибке. Если ошибка не связана с процедурой, значение по умолчанию составляет 1. |
Указатели в адресах ссылок на структуры в строке, возвращенной в аргументе ppErrorStrings.