Поделиться через


ISQLServerErrorInfo::GetErrorInfo (OLE DB)

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

Скачать драйвер OLE DB

Возвращает указатель на структуру SSERRORINFO, определенную в OLE DB Driver for SQL Server и содержащую подробные сведения об ошибке SQL Server.

OLE DB Driver for SQL Server определяет интерфейс для работы с ошибками ISQLServerErrorInfo. Этот интерфейс возвращает подробные сведения об ошибке SQL Server, в том числе уровень серьезности и состояние.

Синтаксис

  
HRESULT GetErrorInfo(  
   SSERRORINFO**ppSSErrorInfo,  
   OLECHAR**ppErrorStrings);  

Аргументы

ppSSErrorInfo[out]
Указатель на структуру SSERRORINFO. Если данный метод не дает результатов или отсутствуют сведения SQL Server, связанные с этой ошибкой, поставщик не выделяет памяти и гарантирует, что аргумент ppSSErrorInfo при выводе имеет значение NULL.

ppErrorStrings[out]
Указатель на Юникод-указатель символьной строки. Если данный метод не дает результатов или отсутствуют сведения SQL Server, связанные с этой ошибкой, поставщик не выделяет памяти и гарантирует, что аргумент ppErrorStrings при выводе имеет значение NULL. При освобождении аргумента ppErrorStrings с помощью метода IMalloc::Free высвобождаются три индивидуальных строковых компонента возвращенной структуры SSERRORINFO, так как память выделяется одним блоком.

Значения кода возврата

S_OK
Метод выполнен успешно.

E_INVALIDARG
Один из аргументов ppSSErrorInfo или ppErrorStrings имел значение NULL.

E_OUTOFMEMORY
OLE DB Driver for SQL Server не удалось выделить достаточный объем памяти для завершения запроса.

Remarks

Драйвер 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.

См. также:

RAISERROR (Transact-SQL)