ISQLServerErrorInfo::GetErrorInfo (Native Client OLE DB-Anbieter)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 OLE DB-Anbieter-SSERRORINFO-Struktur zurück, die die SQL Server-Fehlerdetails enthält.
Der OLE DB-Anbieter von SQL Server Native Client 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 OLE DB-Anbieter von SQL Server Native Client konnte nicht genügend Arbeitsspeicher zuweisen, um die Anforderung abzuschließen.
Hinweise
Der OLE DB-Anbieter von SQL Server Native Client weist Speicher 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