Compartir vía


sp_OAGetErrorInfo (Transact-SQL)

Se aplica a: SQL Server

Obtiene información de errores de OLE Automation.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_OAGetErrorInfo [ objecttoken ]
    [ , source OUTPUT ]
    [ , description OUTPUT ]
    [ , helpfile OUTPUT ]
    [ , helpid OUTPUT ]
[ ; ]

Argumentos

objecttoken

Token de objeto de un objeto OLE creado anteriormente mediante sp_OACreate, o NULL. Si se especifica objecttoken , se devuelve información de error para ese objeto. Si NULL se especifica , se devuelve la información de error de todo el lote.

salida de origen

Origen de la información de error. Si se especifica, debe ser una variable local char, nchar, varchar o nvarchar. El valor devuelto se trunca, si es necesario, para que se ajuste a la variable local.

descripción OUTPUT

Descripción del error. Si se especifica, debe ser una variable local char, nchar, varchar o nvarchar. El valor devuelto se trunca, si es necesario, para que se ajuste a la variable local.

helpfile OUTPUT

Archivo de ayuda del objeto OLE. Si se especifica, debe ser una variable local char, nchar, varchar o nvarchar. El valor devuelto se trunca, si es necesario, para que se ajuste a la variable local.

helpid OUTPUT

Identificador de contexto del archivo de ayuda. Si se especifica, debe ser una variable int local.

Nota:

Los parámetros de este procedimiento almacenado se especifican por posición, no por nombre.

Valores de código de retorno

0 (correcto) o un número distinto de cero (error) que es el valor entero del HRESULT devuelto por el objeto OLE Automation.

Para obtener más información sobre los códigos de retorno HRESULT, consulte Códigos de retorno y información de error de automatización OLE.

Conjunto de resultados

Si no se especifican parámetros de salida, la información de error se devuelve al cliente como un conjunto de resultados.

Nombre de la columna Tipo de datos Descripción
Error binary(4) Representación binaria del número de error.
Source nvarchar(nn) Origen del error.
Description nvarchar(nn) Descripción del error.
Helpfile nvarchar(nn) Archivo de ayuda del origen.
HelpID int Id. del contexto de Ayuda del archivo de origen correspondiente.

Comentarios

Cada llamada a un procedimiento almacenado de OLE Automation (excepto sp_OAGetErrorInfo) restablece la información de error; por lo tanto, sp_OAGetErrorInfo obtiene información de error solo para la llamada de procedimiento almacenado de OLE Automation más reciente. Dado sp_OAGetErrorInfo que no restablece la información de error, se puede llamar varias veces para obtener la misma información de error.

La tabla siguiente muestra los errores de OLE Automation y sus causas comunes.

Error y HRESULT Causa común
Tipo de variable incorrecto (0x80020008) El tipo de datos de un valor de Transact-SQL pasado como parámetro de método no coincide con el tipo de datos de Microsoft Visual Basic del parámetro de método o se pasó un NULL valor como parámetro de método.
Nombre desconocido (0x8002006) No se encontró la propiedad o el nombre del método especificados para el objeto especificado.
Cadena de clase no válida (0x800401f3) El ProgID o CLSID especificado no se registra como un objeto OLE en una instancia de SQL Server. Los servidores de automatización OLE personalizados deben registrarse para poder crear instancias mediante sp_OACreate. Puede registrar servidores mediante la Regsvr32.exe utilidad para servidores en proceso (.dll) o el /REGSERVER modificador de línea de comandos para servidores locales (.exe).
Error de ejecución del servidor (0x80080005) El objeto OLE especificado se registra como un servidor OLE local (.exe archivo), pero no se pudo encontrar ni iniciar el archivo .exe.
No se encontró el módulo especificado (0x8007007e) El objeto OLE especificado se registra como un servidor OLE en proceso (.dll archivo), pero no se pudo encontrar ni cargar el archivo .dll.
Error de coincidencia de tipos (0x80020005) El tipo de datos de una variable local de Transact-SQL que se usa para almacenar un valor de propiedad devuelto o un valor devuelto de método no coincide con el tipo de datos de Visual Basic del valor devuelto de la propiedad o el método. O bien, se solicitó el valor devuelto de una propiedad o un método, pero no devuelve un valor.
El tipo de datos o el valor del parámetro 'context' de sp_OACreate no es válido. (0x8004275B) El valor del parámetro de contexto debe ser uno de los siguientes: 1, 4 o 5.

Para obtener más información sobre el procesamiento de códigos de retorno HRESULT, consulte Códigos de retorno y información de error de automatización OLE.

Permisos

Requiere la pertenencia al rol fijo de servidor sysadmin o ejecutar el permiso directamente en este procedimiento almacenado. La opción de configuración del servidor Procedimientos de Ole Automation debe estar habilitada para usar cualquier procedimiento del sistema relacionado con OLE Automation.

Ejemplos

El ejemplo siguiente muestra la información de errores de OLE Automation.

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;