Vorgehensweise: Verarbeiten von ODBC-Fehlern (ODBC)

Zwei ODBC-Funktionsaufrufe können verwendet werden, um ODBC-Meldungen abzurufen: SQLGetDiagRec und SQLGetDiagField. Um primäre, mit ODBC verbundene Informationen in den Feldern SQLState, pfNative and ErrorMessage zu erhalten, rufen Sie SQLGetDiagRec auf, bis SQL_NO_DATA zurückgegeben wird. Für jeden Diagnosedatensatz kann SQLGetDiagField aufgerufen werden, um einzelne Felder abzurufen. Alle treiberspezifischen Felder müssen mit SQLGetDiagField abgerufen werden.

SQLGetDiagRec und SQLGetDiagField werden vom ODBC-Treiber-Manager, nicht von einem einzelnen Treiber, verarbeitet. Der ODBC-Treiber-Manager speichert treiberspezifische Diagnosefelder erst zwischen, wenn eine erfolgreiche Verbindung hergestellt wurde. Der Aufruf von SQLGetDiagField für treiberspezifische Diagnosefelder ist vor dem erfolgreichen Herstellen einer Verbindung nicht möglich. Dies betrifft auch die ODBC-Verbindungsbefehle, auch wenn sie SQL_SUCCESS_WITH_INFO zurückgeben. Treiberspezifische Diagnosefelder sind bis zum nächsten ODBC-Funktionsaufruf nicht verfügbar.

Hinweise

Es steht ein vollständiges Beispiel eines einfachen Fehlerhandlers zur Verfügung, der SQLGetDiagRec aufruft, um Standard-ODBC-Informationen zu erhalten. Anschließend wird geprüft, ob eine gültige Verbindung vorhanden ist. Ist dies der Fall, wird SQLGetDiagField für die ODBC-treiberspezifischen Diagnosefelder von SQL Server aufgerufen.

Der vollständige Beispielcode befindet sich in der Datei ProcessODBCErrors.cpp, die Sie von der Seite SQL Server Downloads auf MSDN herunterladen können. Dieses Beispiel wurde mit Microsoft Visual C++ 2005 entwickelt und für ODBC Version 3.0 oder höher konzipiert.

SicherheitshinweisSicherheitshinweis

Verwenden Sie nach Möglichkeit die Windows-Authentifizierung. Wenn die Windows-Authentifizierung nicht verfügbar ist, fordern Sie Benutzer auf, ihre Anmeldeinformationen zur Laufzeit einzugeben. Die Anmeldeinformationen sollten nicht in einer Datei gespeichert werden. Wenn Sie die Anmeldeinformationen permanent speichern müssen, verschlüsseln Sie sie mit der Win32 Crypto-API.

Siehe auch

Andere Ressourcen