sp_OAGetErrorInfo (Transact-SQL)
Obtém informações sobre erro de Automação OLE.
Sintaxe
sp_OAGetErrorInfo [ objecttoken ]
[ , source OUTPUT ]
[ , description OUTPUT ]
[ , helpfile OUTPUT ]
[ , helpid OUTPUT ]
Argumentos
objecttoken
É um token de objeto de um objeto OLE que foi criado anteriormente usando sp_OACreate ou é NULL. Se o objecttoken for especificado, serão retornadas as informações sobre erro para esse objeto. Se o NULL for especificado, serão retornadas as informações de erro para o lote inteiro.sourceOUTPUT
É a origem das informações de erro. Se especificada, deve ser uma variável local char, nchar, varchar ou nvarchar. O valor de retorno é truncado para se ajustar à variável local se necessário.descriptionOUTPUT
É a descrição do erro. Se especificado, deve ser uma variável localchar, nchar, varchar ou nvarchar. O valor de retorno é truncado para se ajustar à variável local se necessário.helpfileOUTPUT
É o arquivo de ajuda para o objeto OLE. Se especificada, deve ser uma variável local char, nchar, varchar ou nvarchar. O valor de retorno é truncado para se ajustar à variável local se necessário.helpidOUTPUT
É a ID de contexto do arquivo de ajuda. Se especificada, deve ser uma variável local int.Observação Os parâmetros deste procedimento armazenado são especificados por posição, não por nome.
Valores de código de retorno
0 (êxito) ou um número diferente de zero (falha) que é o valor inteiro do HRESULT retornado pelo objeto de Automação OLE.
Para obter mais informações sobre Códigos de Retorno HRESULT, consulte Informações sobre erros e códigos de retorno de automação OLE.
Conjuntos de resultados
Se nenhum parâmetro de saída for especificado, as informações de erro serão retornadas ao cliente como um conjunto de resultados.
Nomes de coluna |
Tipo de dados |
Descrição |
---|---|---|
Error |
binary(4) |
Representação binária do número do erro. |
Source |
nvarchar(nn) |
A origem do erro. |
Description |
nvarchar(nn) |
Descrição do erro. |
Helpfile |
nvarchar(nn) |
Arquivo de ajuda para a origem. |
HelpID |
int |
ID de contexto de ajuda do arquivo de origem da Ajuda. |
Comentários
Cada chamada a um procedimento armazenado de Automação OLE (exceto sp_OAGetErrorInfo) redefine as informações de erro; portanto, sp_OAGetErrorInfo obtém as informações de erro somente para a chamada de procedimento armazenado de Automação OLE mais recente. Observe que, como sp_OAGetErrorInfo não redefine as informações de erro, ele pode ser chamado várias vezes para obter as mesmas informações de erro.
A tabela a seguir lista os erros de Automação OLE e suas causas comuns.
Erro e HRESULT |
Causa comum |
---|---|
Tipo de variável incorreto (0x80020008) |
O tipo de dados de um valor Transact-SQL passado como um parâmetro de método não correspondeu ao tipo de dados Microsoft Visual Basic do parâmetro de método, ou um valor NULL foi passado como um parâmetro de método. |
Nome desconhecido (0x8002006) |
A propriedade ou o nome de método especificado não foi localizado para o objeto especificado. |
Cadeia de caracteres de classe inválida (0x800401f3) |
ProgID ou CLSID especificado não foi registrado como um objeto OLE em uma instância do SQL Server. Servidores de automação OLE personalizados devem ser registrados antes de serem instanciados usando sp_OACreate. Isso pode ser feito usando o utilitário Regsvr32.exe para servidores (.dll) em processo, ou a opção de linha de comando /REGSERVER para servidores (.exe) locais. |
Execução do servidor falhou (0x80080005) |
O objeto OLE especificado foi registrado como um servidor OLE local (arquivo .exe), mas o arquivo .exe não pôde ser localizado ou iniciado. |
O módulo especificado não pôde ser localizado (0x8007007e) |
O objeto OLE especificado foi registrado como um servidor OLE em processo (arquivo .dll), mas o arquivo .dll não pôde ser localizado ou carregado. |
Incompatibilidade de tipos (0x80020005) |
O tipo de dados de uma variável local Transact-SQL usado para armazenar um valor de propriedade retornado ou um valor de retorno do método não correspondeu ao tipo de dados Visual Basic do valor de retorno da propriedade ou do método. Ou, o valor de retorno de uma propriedade ou de um método foi solicitado, mas não é retornado. |
Tipo de dados ou valor do parâmetro 'context' de sp_OACreate é inválido (0x8004275B) |
O valor do parâmetro de contexto deveria ser: 1, 4 ou 5. |
Para obter mais informações sobre processamento de Códigos de Retorno HRESULT, consulte Informações sobre erros e códigos de retorno de automação OLE.
Permissões
Requer associação na função de servidor fixa sysadmin.
Exemplos
O exemplo a seguir exibe informações sobre erro de Automação 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 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 também