sp_OAGetErrorInfo (Transact-SQL)

Gilt für:SQL Server

Ruft OLE-Automatisierungsfehlerinformationen ab.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

objecttoken
Ist entweder das Objekttoken eines OLE-Objekts, das zuvor mithilfe von sp_OACreate erstellt wurde, oder es ist NULL. Wenn objecttoken angegeben ist, werden Fehlerinformationen für dieses Objekt zurückgegeben. Wird NULL angegeben, werden die Fehlerinformationen für den gesamten Batch zurückgegeben.

QuellAUSGABE
Die Quelle der Fehlerinformation. Wenn angegeben, muss es sich um eine lokale Zeichen-, nchar-, Varchar- oder nvarchar-Variable sein. Der Rückgabewert wird bei Bedarf entsprechend der Länge der lokalen Variablen abgeschnitten.

descriptionOUTPUT
Ist die Beschreibung des Fehlers. Wenn angegeben, muss es sich um eine lokale Zeichen-, nchar-, Varchar- oder nvarchar-Variable sein. Der Rückgabewert wird bei Bedarf entsprechend der Länge der lokalen Variablen abgeschnitten.

HelpfileOUTPUT
Die Hilfedatei des OLE-Objekts. Wenn angegeben, muss es sich um eine lokale Zeichen-, nchar-, Varchar- oder nvarchar-Variable sein. Der Rückgabewert wird bei Bedarf entsprechend der Länge der lokalen Variablen abgeschnitten.

helpidOUTPUT
Die Kontext-ID für die Hilfedatei. Wenn angegeben, muss es sich um eine lokale Int-Variable sein.

Hinweis

Die Parameter für diese gespeicherte Prozedur werden durch Position und nicht durch den Namen angegeben.

Rückgabecodewerte

0 (Erfolg) oder eine Zahl ungleich Null (Fehler), die dem ganzzahligen Wert von HRESULT entspricht, der vom OLE-Automatisierungsobjekt zurückgegeben wird.

Weitere Informationen zu HRESULT-Rückgabecodes finden Sie unter OLE Automation Return Codes and Error Information.

Resultsets

Ist kein Ausgabeparameter angegeben, werden die Fehlerinformationen dem Client als Resultset zurückgegeben.

Spaltennamen Datentyp Beschreibung
Fehler binary(4) Binärdarstellung der Fehlernummer
Quelle nvarchar(nn) Fehlerquelle
Beschreibung nvarchar(nn) Beschreibung des Fehlers
Helpfile nvarchar(nn) Hilfedatei für die Quelle
HelpID int Hilfekontext-ID in der Hilfequelldatei

Hinweise

Jeder Aufruf einer gespeicherten OLE-Automatisierungsprozedur (mit Ausnahme von sp_OAGetErrorInfo) setzt die Fehlerinformationen zurück. Daher ruft sp_OAGetErrorInfo Fehlerinformationen nur für den letzten Aufruf der gespeicherten OLE-Automatisierungsprozedur ab. Beachten Sie, dass sp_OAGetErrorInfo die Fehlerinformationen nicht zurücksetzt, kann sie mehrmals aufgerufen werden, um dieselben Fehlerinformationen zu erhalten.

In der folgenden Tabelle werden OLE-Automatisierungsfehler und deren übliche Ursachen aufgelistet.

Fehler und HRESULT Übliche Ursache
Ungültiger Variablentyp (0x80020008) Der Datentyp eines als Methodenparameter übergebenen Transact-SQL-Werts entspricht nicht dem Microsoft Visual Basic-Datentyp des Methodenparameters, oder ein NULL-Wert wurde als Methodenparameter übergeben.
Unbekannter Name (0x8002006) Der angegebene Eigenschafts- oder Methodenname für das angegebene Objekt wurde nicht gefunden.
Ungültige Klassenzeichenfolge (0x800401f3) Angegebene ProgID oder CLSID wird nicht als OLE-Objekt für eine Instanz von SQL Server registriert. Benutzerdefinierte OLE-Automatisierungsserver müssen registriert werden, bevor sie mithilfe von sp_OACreate instanziiert werden können. Dazu können Sie das Hilfsprogramm Regsvr32.exe für In-Process-Server (.dll) oder den Befehlszeilenschalter /REGSERVER für lokale Server (.exe) verwenden.
Fehler bei der Serverausführung (0x80080005) Das angegebene OLE-Objekt ist als lokaler OLE-Server (EXE-Datei) registriert, aber die EXE-Datei konnte nicht gefunden oder nicht ausgeführt werden.
Das angegebene Modul konnte nicht gefunden werden (0x8007007e) Das angegebene OLE-Objekt ist als In-Process-OLE-Server (DLL-Datei) registriert, aber die DLL-Datei konnte nicht gefunden oder nicht geladen werden.
Typenkonflikt (0x80020005) Der Datentyp einer lokalen Transact-SQL-Variablen, die zum Speichern eines zurückgegebenen Eigenschaftswerts verwendet wird, oder ein Methodenrückgabewert stimmt nicht mit dem Visual Basic-Datentyp der Eigenschaft oder des Methodenrückgabewerts überein. Oder der Rückgabewert einer Eigenschaft oder einer Methode wurde angefordert, gibt jedoch keinen Wert zurück.
Der Datentyp oder wert des Parameters "context" von sp_OACreate ist ungültig. (0x8004275B) Der Wert des Kontextparameters sollte 1, 4 oder 5 sein.

Weitere Informationen zum Verarbeiten von HRESULT-Rückgabecodes finden Sie unter OLE Automation Return Codes and Error Information.

Berechtigungen

Erfordert die Mitgliedschaft in der festen Serverrolle "sysadmin " oder führt die Berechtigung direkt für diese gespeicherte Prozedur aus. Ole Automation ProceduresDie Konfiguration muss aktiviert sein, um alle Systemprozeduren im Zusammenhang mit der OLE-Automatisierung zu verwenden.

Beispiele

Im folgenden Beispiel werden OLE-Automatisierungsfehlerinformationen angezeigt.

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;  

Weitere Informationen

Gespeicherte OLE-Automatisierungsprozeduren (Transact-SQL)
OLE-Automatisierungsbeispielskript