sp_OAGetErrorInfo (Transact-SQL)

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

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

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.

  • source OUTPUT
    É 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.

  • description OUTPUT
    É 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.

  • helpfile OUTPUT
    É 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.

  • helpid OUTPUT
    É a ID de contexto do arquivo de ajuda. Se especificada, deve ser uma variável local int.

    ObservaçãoObservaçã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 com o utilitário Regsvr32.exe para servidores em processo (.dll) ou a opção de linha de comando /REGSERVER para servidores locais (.exe).

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

Exige associação à 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

Referência

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

Script de exemplo de automação OLE