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;