Freigeben über


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.