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
Es el token de objeto de un objeto OLE que se creó anteriormente mediante sp_OACreate o es NULL. Si se especifica objecttoken , se devuelve información de error para ese objeto. Si se especifica NULL, se devuelve la información de error de todo el lote.

salida de origen
Es el 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ónOUTPUT
Es la 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.

helpfileOUTPUT
Es el 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.

helpidOUTPUT
Es el 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 valor distinto de cero (error) que es el valor entero del HRESULT devuelto por el objeto de OLE Automation.

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

Conjuntos 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 columna Tipo de datos Descripción
Error binary(4) Representación binaria del número de error.
Origen nvarchar(nn) Origen del error.
Descripción 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 tanto, sp_OAGetErrorInfo solo obtiene la información de error de la llamada más reciente a un procedimiento almacenado de OLE Automation. Tenga en cuenta que, dado que sp_OAGetErrorInfo 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 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 valor NULL como parámetro de método.
Nombre desconocido (0x8002006) No se encontró el nombre de la propiedad o del método especificado para el objeto especificado.
Cadena de clase no válida (0x800401f3) El ProgID o CLSID especificado no está registrado 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. Esto se puede hacer mediante la utilidad Regsvr32.exe para servidores en proceso (.dll) o el modificador de línea de comandos /REGSERVER para servidores locales (.exe).
Error de ejecución del servidor (0x80080005) El objeto OLE especificado está registrado como servidor OLE local (archivo .exe), pero no se pudo encontrar o iniciar el archivo .exe.
No se encontró el módulo especificado (0x8007007e) El objeto OLE especificado está registrado como servidor OLE en proceso (archivo .dll), pero no se pudo encontrar o 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 coincidía con el tipo de datos de Visual Basic del valor devuelto de la propiedad o del método. O bien, se solicitó el valor devuelto de una propiedad o método, pero no se 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, vea Códigos de retorno e información de error de OLE Automation.

Permisos

Requiere la pertenencia al rol fijo de servidor sysadmin o ejecutar el permiso directamente en este procedimiento almacenado. Ole Automation Procedures la configuración 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 OUT, @description OUT;  
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;  

Consulte también

Procedimientos almacenados de OLE Automation (Transact-SQL)
Ejemplo de script de automatización OLE