sp_OAGetErrorInfo (Transact-SQL)

Si applica a:SQL Server

Ottiene informazioni sull'errore di automazione OLE.

Convenzioni di 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 viene specificato NULL, vengono restituite le informazioni sull'errore relative all'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.

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

helpfileOUTPUT
File della Guida relativo all'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.

helpidOUTPUT
ID di 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 (esito negativo) corrispondente al valore intero del codice HRESULT restituito dall'oggetto di 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.

Nomi colonne Tipo di dati Descrizione
Errore binary(4) Rappresentazione binaria del numero di errore.
Origine nvarchar(nn) Origine dell'errore.
Descrizione 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 di sp_OAGetErrorInfo) reimposta le informazioni sull'errore. Pertanto, sp_OAGetErrorInfo ottiene informazioni sull'errore solo per la chiamata alla stored procedure di automazione OLE più recente. Si noti che poiché sp_OAGetErrorInfo non reimposta le informazioni sull'errore, è possibile chiamare 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 oppure un valore NULL è stato passato come parametro del metodo.
Nome sconosciuto (0x8002006) Il nome di proprietà o metodo specificato non è stato trovato 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. A tale scopo, è possibile usare l'utilità Regsvr32.exe per i server in-process (dll) o l'opzione della riga di comando /REG edizione Standard RVER per i server locali (.exe).
Esecuzione del server non riuscita (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.
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. oppure è stato richiesto il valore restituito di una proprietà o un metodo ma non viene restituito alcun valore.
Tipo di dati o 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. Ole Automation Procedures la configurazione 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 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;  

Vedi anche

Stored procedure di automazione OLE (Transact-SQL)
Script di automazione OLE di esempio