'ISQLServerErrorInfo::GetErrorInfo' (OLE DB)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
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