Teilen über


ISQLServerErrorInfo::GetErrorInfo (Native Client OLE DB-Anbieter)

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

Wichtig

Der SQL Server Native Client (häufig abgekürzt mit SNAC) wurde aus SQL Server 2022 (16.x) und SQL Server Management Studio 19 (SSMS) entfernt. Sowohl der OLE DB-Anbieter für den SQL Server Native Client (SQLNCLI oder SQLNCLI11) als auch der Microsoft OLE DB-Legacyanbieter für SQL Server (SQLOLEDB) werden für Neuentwicklungen nicht empfohlen. Verwenden Sie in Zukunft den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL).

Gibt einen Zeiger auf eine SQL Server Native Client SSERRORINFO-Struktur des OLE DB-Anbieters zurück, die die SQL Server Fehlerdetails enthält.

Der SQL Server Native Client OLE DB-Anbieter definiert die ISQLServerErrorInfo-Fehlerschnittstelle. 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 SQL Server Native Client OLE DB-Anbieter konnte nicht genügend Arbeitsspeicher zuweisen, um die Anforderung abzuschließen.

Bemerkungen

Der SQL Server Native Client OLE DB-Anbieters weist Arbeitsspeicher für die SSERRORINFO- und OLECHAR-Zeichenfolgen zu, die über die vom Consumer übergebenen Zeiger zurückgegeben 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)