Condividi tramite


sp_OAGetErrorInfo (Transact-SQL)

Ottiene informazioni sull'errore di automazione OLE.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • objecttoken
    Token di un oggetto OLE creato in precedenza tramite sp_OACreate oppure valore NULL. Se viene specificato objecttoken, vengono restituite le informazioni sull'errore relative a tale oggetto. Se viene specificato NULL, vengono restituite le informazioni sull'errore relative all'intero batch.

  • sourceOUTPUT
    Origine delle informazioni sull'errore. Se viene specificato, questo argomento deve essere una variabile locale di tipo char, nchar, varchar o nvarchar. Se necessario, il valore restituito viene troncato in base alla dimensione della variabile locale.

  • descriptionOUTPUT
    Descrizione dell'errore. Se viene specificato, questo argomento deve essere una variabile locale di tipo char, nchar, varchar o nvarchar. Se necessario, il valore restituito viene troncato in base alla dimensione della variabile locale.

  • helpfileOUTPUT
    File della Guida relativo all'oggetto OLE. Se viene specificato, questo argomento deve essere una variabile locale di tipo char, nchar, varchar o nvarchar. Se necessario, il valore restituito viene troncato in base alla dimensione della variabile locale.

  • helpidOUTPUT
    ID di contesto del file della Guida. Se viene specificato, questo argomento deve essere una variabile locale di tipo int.

    Nota

    I parametri di questa stored procedure vengono specificati in base alla posizione, non in base al nome.

Valori restituiti

0 (esito positivo) o un numero diverso da zero (esito negativo) corrispondente al valore integer del codice HRESULT restituito dall'oggetto di automazione OLE.

Per ulteriori informazioni sui codici restituiti HRESULT, vedere Codici restituiti e informazioni sugli errori di automazione OLE.

Set di risultati

Se non viene specificato alcun parametro di output, le informazioni sull'errore vengono restituite al client come set di risultati.

Nome colonna

Tipo di dati

Descrizione

Error

binary(4)

Rappresentazione binaria del numero di errore.

Source

nvarchar(nn)

Origine dell'errore.

Description

nvarchar(nn)

Descrizione dell'errore.

Helpfile

nvarchar(nn)

File della Guida relativo all'origine.

HelpID

int

ID di contesto della Guida nel file di origine della Guida.

Osservazioni

A ogni chiamata di una stored procedure di automazione OLE, ad eccezione di sp_OAGetErrorInfo, le informazioni sull'errore vengono reimpostate. La stored procedure sp_OAGetErrorInfo recupera pertanto informazioni sull'errore solo per la chiamata della stored procedure di automazione OLE più recente. Dato che nel caso di sp_OAGetErrorInfo le informazioni sull'errore non vengono reimpostate, è possibile chiamarla più volte per ottenere le stesse informazioni sull'errore.

Nella tabella seguente vengono elencati gli errori di automazione OLE e le cause più comuni.

Errore e codice HRESULT

Causa più comune

Tipo di variabile non valido (0x80020008)

Il tipo di dati di un valore Transact-SQL passato come parametro di metodo non corrisponde al tipo di dati di Microsoft Visual Basic del parametro di metodo oppure il parametro di metodo passato è un valore NULL.

Nome sconosciuto (0x8002006)

Il nome di proprietà o metodo specificato non è stato trovato per l'oggetto specificato.

Stringa della classe non valida (0x800401f3)

Il valore ProgID o CLSID specificato non è registrato come oggetto OLE in un'istanza di SQL Server. Per poter creare istanze di server di automazione OLE personalizzati tramite sp_OACreate, è prima necessario registrarli. A tale scopo, è possibile utilizzare l'utilità Regsvr32.exe per server in-process (file dll) oppure l'opzione della riga di comando /REGSERVER per server locali (file exe).

Esecuzione del server fallita (0x80080005)

L'oggetto OLE specificato è registrato come server OLE locale (file exe), ma non è stato possibile trovare o avviare il file.

Impossibile trovare il modulo specificato (0x8007007e)

L'oggetto OLE specificato è registrato come server OLE in-process (file dll), ma non è stato possibile trovare o caricare il file.

Tipo non corrispondente (0x80020005)

Il tipo di dati di una variabile locale Transact-SQL utilizzata per l'archiviazione del valore restituito di una proprietà o un metodo non corrisponde al tipo di dati di Visual Basic del valore restituito della proprietà o del metodo oppure è stato richiesto il valore restituito di una proprietà o un metodo ma non viene restituito alcun valore.

Il tipo di dati o il valore del parametro 'context' di sp_OACreate non è valido (0x8004275B)

Il valore del parametro di contesto deve essere 1, 4 o 5.

Per ulteriori informazioni sull'elaborazione dei codici restituiti HRESULT, vedere Codici restituiti e informazioni sugli errori di automazione OLE.

Autorizzazioni

È richiesta l'appartenenza al ruolo predefinito del server sysadmin.

Esempi

Nell'esempio seguente vengono visualizzate le informazioni sull'errore di automazione 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