sp_OAGetErrorInfo (Transact-SQL)
Ottiene informazioni sull'errore di automazione OLE.
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
Vedere anche