Beispiel für die Diagnose des dateibasierten Treibers
Ein dateibasierter Treiber fungiert sowohl als ODBC-Treiber als auch als Datenquelle. Er kann daher Fehler und Warnungen sowohl als Komponente in einer ODBC-Verbindung als auch als Datenquelle generieren. Da er auch die Komponente ist, die eine Schnittstelle zum Treiber-Manager bildet, formatiert er Argumente für SQLGetDiagRec und gibt sie zurück.
Wenn beispielsweise ein Microsoft-Treiber für dBASE nicht genügend Arbeitsspeicher zuweisen konnte, gibt er gibt er gegebenenfalls die folgenden Werte aus SQLGetDiagRec zurück:
SQLSTATE: "HY001"
Native Error: 42052
Diagnostic Msg: "[Microsoft][ODBC dBASE Driver]Unable to allocate sufficient memory."
Da dieser Fehler nicht auf die Datenquelle bezogen war, hat der Treiber nur Präfixe für den Anbieter ([Microsoft]) und den Treiber ([ODBC dBASE Driver]) an die Diagnosemeldung angefügt.
Wenn der Treiber die Datei Employee.dbf nicht finden konnte, gibt er gegebenenfalls die folgenden Werte aus SQLGetDiagRec zurück:
SQLSTATE: "42S02"
Native Error: -1305
Diagnostic Msg: "[Microsoft][ODBC dBASE Driver][dBASE]No such table or object"
Da dieser Fehler auf die Datenquelle bezogen war, hat der Treiber das Dateiformat der Datenquelle ([dBASE]) als Präfix an die Diagnosemeldung angefügt. Da der Treiber auch die Komponente war, die eine Schnittstelle zur Datenquelle gebildet hat, hat er Präfixe für den Anbieter ([Microsoft]) und den Treiber ([ODBC dBASE Driver]) angefügt.