Freigeben über


SQL Server-Fehlerdetail

Der SQL Server Native Client-OLE DB-Anbieter definiert die anbieterspezifische ISQLServerErrorInfo-Schnittstelle. Diese Schnittstelle stellt Details zu SQL Server-Fehlern bereit und ist daher eine nützliche Informationsquelle, wenn Fehler bei der Ausführung von Befehlen oder Rowsetvorgängen auftreten.

Für den Zugriff auf die ISQLServerErrorInfo-Schnittstelle gibt es zwei Möglichkeiten.

Der Consumer kann IErrorRecords::GetCustomerErrorObject aufrufen, um einen ISQLServerErrorInfo-Zeiger zu erhalten, wie im folgenden Codebeispiel gezeigt. (Es ist nicht nötig, ISQLErrorInfo abzurufen.) Sowohl ISQLErrorInfo und ISQLServerErrorInfo sind benutzerdefinierte OLE DB-Fehlerobjekte, deren Schnittstelle zum Abrufen von Informationen zu Serverfehlern einschließlich Details wie Prozedurname und Zeilennummern ISQLServerErrorInfo ist.

// Get the SQL Server custom error object.
if(FAILED(hr=pIErrorRecords->GetCustomErrorObject(
   nRec, IID_ISQLServerErrorInfo,
   (IUnknown**)&pISQLServerErrorErrorInfo)))

Eine andere Möglichkeit, einen ISQLServerErrorInfo-Zeiger zu erhalten, besteht darin, die QueryInterface-Methode für einen bereits erhaltenen ISQLErrorInfo-Zeiger aufzurufen. Beachten Sie, dass ISQLServerErrorInfo eine Obermenge der Informationen enthält, die durch ISQLErrorInfo verfügbar sind. Daher ist es sinnvoll, direkt über GetCustomerErrorObject zu ISQLServerErrorInfo zu gehen.

Die ISQLServerErrorInfo-Schnittstelle macht eine Memberfunktion, ISQLServerErrorInfo::GetErrorInfo, verfügbar. Die Funktion gibt einen Zeiger auf eine SSERRORINFO-Struktur und einen Zeiger auf einen Zeichenfolgenpuffer zurück. Beide Zeiger verweisen auf den Arbeitsspeicher, den der Consumer mithilfe der IMalloc::Free -Methode freigeben muss.

SSERRORINFO-Strukturmember werden vom Consumer interpretiert wie folgt.

Member

Beschreibung

pwszMessage

SQL Server-Fehlermeldung. Identisch mit der Zeichenfolge, die in IErrorInfo::GetDescription zurückgegeben wird.

pwszServer

Name der Instanz von SQL Server für diese Sitzung.

pwszProcedure

Falls zutreffend, der Name der Prozedur, in der der Fehler aufgetreten ist. Andernfalls eine leere Zeichenfolge.

lNative

Systemeigene SQL Server-Fehlernummer. Identisch mit dem Wert, der im plNativeError-Parameter von ISQLErrorInfo::GetSQLInfo zurückgegeben wird.

bState

Der Status einer SQL Server-Fehlermeldung.

bClass

Schweregrad einer SQL Server-Fehlermeldung.

wLineNumber

Falls zutreffend, die Zeilennummer einer gespeicherten Prozedur, in der der Fehler aufgetreten ist.

Siehe auch

Verweis

Konzepte