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


ISQLServerErrorInfo::GetErrorInfo (поставщик OLE DB собственного клиента)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Внимание

Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Поставщик OLE DB собственного клиента SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для новой разработки. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server .

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

Поставщик OLE DB собственного клиента 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 собственного клиента 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.

См. также

RAISERROR (Transact-SQL)