Freigeben über


File-Based Treiberdiagnosebeispiel

Ein dateibasierter Treiber fungiert sowohl als ODBC-Treiber als auch als Datenquelle. Daher können Fehler und Warnungen sowohl als Komponente in einer ODBC-Verbindung als auch als Datenquelle generiert werden. Da diese Komponente auch mit dem Treiber-Manager schnittstellt, werden Argumente für SQLGetDiagRec formatiert und zurückgegeben.

Wenn beispielsweise ein Microsoft-Treiber für dBASE nicht genügend Arbeitsspeicher zuweisen konnte, gibt er möglicherweise 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 mit der Datenquelle verknüpft war, hat der Treiber nur Präfixe zur Diagnosemeldung für den Anbieter ([Microsoft]) und den Treiber ([ODBC dBASE-Treiber]) hinzugefügt.

Wenn der Treiber die Datei Employee.dbf nicht finden konnte, gibt er möglicherweise 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 mit der Datenquelle zusammenhängt, hat der Treiber das Dateiformat der Datenquelle ([dBASE]) als Präfix zur Diagnosemeldung hinzugefügt. Da der Treiber auch die Komponente war, die mit der Datenquelle verknüpft ist, wurden dem Anbieter ([Microsoft]) und dem Treiber ([ODBC dBASE Driver]) Präfixe hinzugefügt.