Partilhar via


sp_OAGetErrorInfo (Transact-SQL)

Aplica-se: 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 NULL for especificado, as informações de erro para todo o lote serão retornadas.

fonte SAÍDA

A fonte 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ção SAÍ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 arquivo de 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 (sucesso) 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.

Conjunto 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.

Nome da coluna Tipo de dados Descrição
Error binário(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 para um procedimento armazenado da 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 da Automação OLE mais recente. 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 inválida (0x80020008) O tipo de dados de um valor Transact-SQL passado como um parâmetro de método não correspondia ao tipo de dados do Microsoft Visual Basic do parâmetro de método ou um NULL valor foi passado como um parâmetro de método.
Nome desconhecido (0x8002006) A propriedade especificada ou o nome do método não foi encontrado para o objeto especificado.
Cadeia de caracteres de classe inválida (0x800401f3) O ProgID ou CLSID especificado não está registrado como um objeto OLE em uma instância do SQL Server. Os servidores de automação OLE personalizados devem ser registrados antes de serem instanciados usando sp_OACreateo . Você pode registrar servidores usando o Regsvr32.exe utilitário para servidores em processo (.dll) ou a /REGSERVER opção de linha de comando para servidores locais (.exe).
Falha na execução do servidor (0x80080005) O objeto OLE especificado está registrado como um servidor OLE local (.exe arquivo), mas o arquivo .exe não pôde ser encontrado ou iniciado.
Não foi possível encontrar o módulo especificado (0x8007007e) O objeto OLE especificado é registrado como um servidor OLE em processo (.dll arquivo), mas o arquivo .dll não pôde ser encontrado 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 retornado de método não correspondeu ao tipo de dados do Visual Basic da propriedade ou do valor retornado do método. Ou o valor retornado de uma propriedade ou um método foi solicitado, mas não retorna um valor.
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 o processamento de códigos de retorno HRESULT, consulte Códigos de retorno de automação OLE e informações de erro.

Permissões

Requer associação na função de servidor fixa sysadmin ou permissão de execução diretamente nesse procedimento armazenado. A opção de configuração do servidor Ole Automation Procedures deve ser habilitada para usar qualquer procedimento do sistema relacionado ao OLE Automation.

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 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;