События
31 мар., 23 - 2 апр., 23
Конечное событие SQL, Power BI, Fabric и ai community. 31 марта – 2 апреля. Используйте код MSCUST для скидки на $150. Цены выросли на 11 февраля.
Зарегистрироваться сегодняЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Область применения: SQL Server
Получает данные об ошибке OLE-автоматизации.
Соглашения о синтаксисе Transact-SQL
sp_OAGetErrorInfo [ objecttoken ]
[ , source OUTPUT ]
[ , description OUTPUT ]
[ , helpfile OUTPUT ]
[ , helpid OUTPUT ]
[ ; ]
Либо маркер объекта OLE, созданный ранее с помощью , sp_OACreate
либо NULL
. Если задан объект, возвращается информация об ошибке для этого объекта. Если NULL
задано, возвращается информация об ошибке для всего пакета.
Источник сведений об ошибке. Если задано, это должна быть локальная переменная char, nchar, varchar или nvarchar. Возвращаемое значение при необходимости усекается, чтобы оно уместилось в локальной переменной.
Описание ошибки. Если задано, это должна быть локальная переменная char, nchar, varchar или nvarchar. Возвращаемое значение при необходимости усекается, чтобы оно уместилось в локальной переменной.
Файл справки для объекта OLE. Если задано, это должна быть локальная переменная char, nchar, varchar или nvarchar. Возвращаемое значение при необходимости усекается, чтобы оно уместилось в локальной переменной.
Идентификатор контекста файла справки. Если он указан, он должен быть локальной переменной int .
Примечание
Параметры для этой хранимой процедуры задаются по положению, а не по имени.
0
(успешно) или ненулевое число (сбой), которое является целым значением HRESULT, возвращаемым объектом OLE Automation.
Дополнительные сведения о кодах возврата HRESULT см. в разделе "Коды возврата автоматизации OLE" и сведения об ошибках.
Если не заданы никакие выходные параметры, в качестве результирующего набора клиенту возвращаются сведения об ошибке.
Имя столбца | Тип данных | Description |
---|---|---|
Error |
binary(4) | Двоичное представление номера ошибки. |
Source |
nvarchar(nn) | Источник ошибки. |
Description |
nvarchar(nn) | Описание ошибки. |
Helpfile |
nvarchar(nn) | Файл справки для источника. |
HelpID |
int | Идентификатор контекста справки в исходном файле справки. |
Каждый вызов хранимой процедуры OLE Automation (за исключением sp_OAGetErrorInfo
) сбрасывает сведения об ошибке, sp_OAGetErrorInfo
поэтому получает сведения об ошибке только для последнего вызова хранимой процедуры OLE Automation. Так как sp_OAGetErrorInfo
не сбрасывает сведения об ошибке, его можно вызывать несколько раз, чтобы получить одну и ту же информацию об ошибке.
В следующей таблице перечисляются ошибки OLE-автоматизации и их наиболее частые причины.
Ошибка и HRESULT | Распространенная причина |
---|---|
Недопустимый тип переменной (0x80020008) | Тип данных значения Transact-SQL, передаваемого в качестве параметра метода, не соответствовал типу данных Microsoft Visual Basic параметра метода, или NULL значение было передано в качестве параметра метода. |
Неизвестное имя (0x8002006) | Указанное свойство или имя метода не найдено для указанного объекта. |
Недопустимая строка класса (0x800401f3) | Указанный progID или CLSID не регистрируется в качестве объекта OLE в экземпляре SQL Server. Прежде чем создавать экземпляры sp_OACreate , необходимо зарегистрировать пользовательские серверы автоматизации OLE. Вы можете зарегистрировать серверы с помощью Regsvr32.exe программы для внутрипроцессных (.dll ) серверов или /REGSERVER коммутатор командной строки для локальных (.exe ) серверов. |
Сбой выполнения сервера (0x80080005) | Указанный объект OLE зарегистрирован как локальный сервер OLE (.exe файл), но не удалось найти или запустить файл .exe. |
Не удалось найти указанный модуль (0x8007007e) | Указанный объект OLE зарегистрирован как внутрипроцессный сервер OLE (.dll файл), но не удалось найти или загрузить файл .dll. |
Несоответствие типов (0x80020005) | Тип данных локальной переменной Transact-SQL, которая используется для хранения возвращаемого значения свойства или возвращаемого значения метода не совпадает с типом данных Visual Basic возвращаемого значения свойства или метода. Или возвращаемое значение свойства или метода было запрошено, но оно не возвращает значение. |
Недопустимый тип данных или значение параметра sp_OACreate context. (0x8004275B) |
Значение параметра контекста должно быть одним из следующих значений: 1, 4 или 5. |
Дополнительные сведения об обработке кодов возврата HRESULT см. в разделе "Коды возврата ole автоматизации" и сведения об ошибках.
Требуется членство в предопределенных ролях сервера sysadmin или разрешение на выполнение непосредственно в этой хранимой процедуре. Параметр конфигурации сервера Ole Automation Procedures должен быть включен для использования любой системной процедуры, связанной с OLE Automation.
В следующем примере отображаются сведения об ошибке OLE-автоматизации.
DECLARE @output VARCHAR(255);
DECLARE @hr INT;
DECLARE @source VARCHAR(255);
DECLARE @description VARCHAR(255);
PRINT 'OLE Automation Error Information';
EXEC @hr = sp_OAGetErrorInfo @object,
@source OUTPUT,
@description OUTPUT;
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source;
PRINT @output;
SELECT @output = ' Description: ' + @description;
PRINT @output;
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
RETURN
END;
События
31 мар., 23 - 2 апр., 23
Конечное событие SQL, Power BI, Fabric и ai community. 31 марта – 2 апреля. Используйте код MSCUST для скидки на $150. Цены выросли на 11 февраля.
Зарегистрироваться сегодня