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ón OUTPUT
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.
helpfile OUTPUT
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.
helpid OUTPUT
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. |
Archivo de ayuda | 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