Condividi tramite


sp_OAGetErrorInfo (Transact-SQL)

Si applica a: SQL Server

Ottiene informazioni sull'errore di automazione OLE.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

objecttoken

Token oggetto di un oggetto OLE creato in precedenza tramite sp_OACreate, o NULL. Se si specifica objecttoken , vengono restituite informazioni sull'errore per l'oggetto. Se NULL viene specificato, vengono restituite le informazioni sull'errore per l'intero batch.

output di origine

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

descrizione OUTPUT

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

helpfile OUTPUT

File della Guida per l'oggetto OLE. Se specificato, deve essere una variabile char, nchar, varchar o nvarchar locale. Se necessario, il valore restituito viene troncato in base alla dimensione della variabile locale.

helpid OUTPUT

ID del contesto del file della Guida. Se specificato, deve essere una variabile int locale.

Nota

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

Valori del codice restituito

0 (esito positivo) o un numero diverso da zero (errore) che corrisponde al valore intero dell'oggetto HRESULT restituito dall'oggetto automazione OLE.

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

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:

Ogni chiamata a una stored procedure di automazione OLE (ad eccezione sp_OAGetErrorInfodi ) reimposta le informazioni sull'errore, pertanto sp_OAGetErrorInfo ottiene informazioni sull'errore solo per la chiamata di stored procedure di automazione OLE più recente. Poiché sp_OAGetErrorInfo non reimposta le informazioni sull'errore, può essere chiamato 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 comune
Tipo di variabile non valido (0x80020008) Il tipo di dati di un valore Transact-SQL passato come parametro del metodo non corrisponde al tipo di dati di Microsoft Visual Basic del parametro del metodo o un NULL valore è stato passato come parametro del metodo.
Nome sconosciuto (0x8002006) Impossibile trovare il nome della proprietà o del metodo specificato per l'oggetto specificato.
Stringa di classe non valida (0x800401f3) Il ProgID specificato o CLSID non è registrato come oggetto OLE in un'istanza di SQL Server. I server di automazione OLE personalizzati devono essere registrati prima di poter creare un'istanza usando sp_OACreate. È possibile registrare i server usando l'utilità Regsvr32.exe per i server in-process (.dll) o l'opzione della /REGSERVER riga di comando per i server locali (.exe).
Esecuzione del server non riuscita (0x80080005) L'oggetto OLE specificato è registrato come server OLE locale (.exe file), ma non è stato possibile trovare o avviare il file .exe.
Impossibile trovare il modulo specificato (0x8007007e) L'oggetto OLE specificato è registrato come server OLE in-process (.dll file), ma non è stato possibile trovare o caricare il file .dll.
Mancata corrispondenza del tipo (0x80020005) Tipo di dati di una variabile locale Transact-SQL utilizzata per archiviare un valore della proprietà restituito o un valore restituito dal metodo non corrisponde al tipo di dati Visual Basic del valore restituito della proprietà o del metodo. In alternativa, è stato richiesto il valore restituito di una proprietà o di un metodo, ma non restituisce un 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 altre informazioni sull'elaborazione dei codici restituiti HRESULT, vedere Codici restituiti di automazione OLE e informazioni sugli errori.

Autorizzazioni

È richiesta l'appartenenza al ruolo predefinito del server sysadmin o l'autorizzazione di esecuzione direttamente in questa stored procedure. L'opzione di configurazione del server Ole Automation Procedures deve essere abilitata per utilizzare qualsiasi procedura di sistema correlata all'automazione OLE.

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