Freigeben über


'ISQLServerErrorInfo::GetErrorInfo' (OLE DB)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

OLE DB-Treiber herunterladen

Hiermit wird ein Zeiger auf eine SSERRORINFO-Struktur des OLE DB-Treibers für SQL Server zurückgegeben, die die Fehlerdetails für SQL Server enthält.

Der OLE DB-Treiber für SQL Server definiert die Fehlerschnittstelle für ISQLServerErrorInfo. Diese Schnittstelle gibt Details zu einem SQL Server-Fehler zurück, einschließlich seines Schweregrads und Status.

Syntax

  
HRESULT GetErrorInfo(  
   SSERRORINFO**ppSSErrorInfo,  
   OLECHAR**ppErrorStrings);  

Argumente

ppSSErrorInfo[out]
Ein Zeiger auf eine SSERRORINFO-Struktur. Wenn die Methode fehlschlägt oder dem Fehler keine SQL Server-Informationen zugeordnet sind, teilt der Anbieter keinen Speicher zu und stellt sicher, dass das ppSSErrorInfo-Argument bei der Ausgabe ein NULL-Zeiger ist.

ppErrorStrings[out]
Ein Zeiger auf einen Unicode-Zeichenfolgenzeiger. Wenn die Methode fehlschlägt oder dem Fehler keine SQL Server-Informationen zugeordnet sind, teilt der Anbieter keinen Speicher zu und stellt sicher, dass das ppErrorStrings-Argument bei der Ausgabe ein NULL-Zeiger ist. Durch die Freigabe des ppErrorStrings -Arguments mit der IMalloc::Free -Methode werden die drei einzelnen Zeichenfolgenelemente der zurückgegebenen SSERRORINFO-Struktur freigegeben, da der Speicher in einem Block zugeteilt wird.

Rückgabecodewerte

S_OK
Die Methode wurde erfolgreich ausgeführt.

E_INVALIDARG
Entweder das ppSSErrorInfo -Argument oder das ppErrorStrings -Argument war NULL.

E_OUTOFMEMORY
Der OLE DB-Treiber für SQL Server konnte nicht genügend Arbeitsspeicher zuteilen, um die Anforderung abzuschließen.

Bemerkungen

Der OLE DB Driver for SQL Server teilt Arbeitsspeicher für die SSERRORINFO- und die OLECHAR-Zeichenfolgen zu, die durch die Zeiger zurückgegeben werden, die vom Consumer übergeben werden. Der Consumer muss diesen Arbeitsspeicher mithilfe der IMalloc::Free -Methode freigeben, wenn er keinen Zugriff auf die Fehlerdaten mehr benötigt.

Die SSERRORINFO-Struktur ist folgendermaßen definiert:

typedef struct tagSSErrorInfo  
   {  
   LPOLESTR pwszMessage;  
   LPOLESTR pwszServer;  
   LPOLESTR pwszProcedure;  
   LONG lNative;  
   BYTE bState;  
   BYTE bClass;  
   WORD wLineNumber;  
   }  
SSERRORINFO;  
Member BESCHREIBUNG
pwszMessage Die Fehlermeldung aus SQL Server. Die Meldung wird durch die IErrorInfo::GetDescription -Methode zurückgegeben.
pwszServer Der Name der Instanz von SQL Server, auf der der Fehler aufgetreten ist
pwszProcedure Der Name der gespeicherten Prozedur, die den Fehler generiert, wenn der Fehler in einer gespeicherten Prozedur aufgetreten ist; anderenfalls ist es eine leere Zeichenfolge.
lNative Die SQL Server-Fehlernummer. Die Fehlernummer ist mit der im plNativeError -Parameter der ISQLErrorInfo::GetSQLInfo -Methode zurückgegebenen identisch.
bState Der Zustand des SQL Server -Fehlers.
bClass Der Schweregrad des SQL Server -Fehlers.
wLineNumber Das ist gegebenenfalls die Zeile einer gespeicherten SQL Server-Prozedur, die die Fehlermeldung generiert hat. Wenn keine Prozedur betroffen ist, lautet der Standardwert 1.

Zeiger auf die Strukturverweisadressen in der Zeichenfolge, die im ppErrorStrings -Argument zurückgegeben wird

Weitere Informationen

RAISERROR (Transact-SQL)