sp_OAGetErrorInfo (Transact-SQL)

Aplica-se a:SQL Server

Obtém informações sobre erro de Automação OLE.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

ObjectToken
É o token de objeto de um objeto OLE que foi criado anteriormente usando sp_OACreate ou é NULL. Se objecttoken for especificado, as informações de erro para esse objeto serão retornadas. Se o NULL for especificado, serão retornadas as informações de erro para o lote inteiro.

fonteSAÍDA
É a origem das informações de erro. Se especificado, 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.

descriçãoSAÍDA
É a descrição do erro. Se especificado, 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.

SAÍDA do arquivode ajuda
É o arquivo de ajuda para o objeto OLE. Se especificado, 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.

SAÍDA helpid
É a ID de contexto do arquivo de ajuda. Se especificado, deve ser uma variável int local.

Observação

Os parâmetros deste procedimento armazenado são especificados por posição, não por nome.

Valores do 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 Códigos de retorno de automação OLE e informações de erro.

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 Colunas Tipo de dados Descrição
Erro binário(4) Representação binária do número do erro.
Origem Nvarchar(nn) A origem do erro.
Descrição Nvarchar(nn) Descrição do erro.
Arquivo de Ajuda Nvarchar(nn) Arquivo de ajuda para a origem.
ID de Ajuda int ID de contexto de ajuda do arquivo de origem da Ajuda.

Comentários

Cada chamada para um procedimento armazenado de automação OLE (exceto sp_OAGetErrorInfo) redefine as informações de erro, portanto, sp_OAGetErrorInfo obtém 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 incorreta (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 do 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 é registrado como um objeto OLE em uma instância do SQL Server. Os servidores de automação OLE personalizados devem ser registrados antes de poderem ser instanciados usando sp_OACreate. Isso pode ser feito usando o utilitário Regsvr32.exe para servidores em processo (.dll) ou a opção de linha de comando /REGSERVER para servidores locais (.exe).
Falha na execução do servidor (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.
Não foi possível encontrar o módulo especificado (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 tipo (0x80020005) O tipo de dados de uma variável local Transact-SQL usada para armazenar um valor de propriedade retornado ou um valor de retorno de método não correspondeu ao tipo de dados do Visual Basic da propriedade ou do valor de retorno do método. Ou, o valor de retorno de uma propriedade ou de um método foi solicitado, mas não é retornado.
O tipo de dados ou o 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 como processar códigos de retorno HRESULT, consulte Códigos de retorno de automação OLE e informações de erro.

Permissões

Requer associação à função de servidor fixa sysadmin ou permissão de execução diretamente neste Procedimento Armazenado. Ole Automation Procedures a configuração deve estar habilitada para usar qualquer procedimento do sistema relacionado à automação OLE.

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;  

Confira também

Procedimentos armazenados de automação OLE (Transact-SQL)
Script de exemplo de automação