Freigeben über


Beispiel für die Diagnose des DBMS-basierten Treibers

Ein DBMS-basierter Treiber sendet Anforderungen an ein DBMS und gibt Informationen über den Treiber-Manager an die Anwendung zurück. Da es sich bei dem Treiber um die Komponente handelt, die mit dem Treiber-Manager schnittstellen, werden Argumente für SQLGetDiagRec formatiert und zurückgegeben.

Wenn beispielsweise bei Verwendung von SQL/Services ein Microsoft-Treiber für Oracle Rdb einen ungültigen Cursornamen gefunden hat, gibt er möglicherweise die folgenden Werte aus SQLGetDiagRec zurück:

SQLSTATE:         "34000"  
Native Error:      0  
Diagnostic Msg:   "[Microsoft][ODBC Rdb Driver]Invalid cursor name: EMPLOYEE_CURSOR."  

Da der Fehler im Treiber aufgetreten ist, wurden der Diagnosenachricht für den Anbieter ([Microsoft]) und den Treiber ([ODBC Rdb Driver]) Präfixe hinzugefügt.

Wenn der DBMS die Tabelle EMPLOYEE nicht finden konnte, wird der Treiber möglicherweise formatieren und die folgenden Werte aus SQLGetDiagRec zurückgeben:

SQLSTATE:         "42S02"  
Native Error:      -1  
Diagnostic Msg:   "[Microsoft][ODBC Rdb Driver][Rdb] %SQL-F-RELNOTDEF, Table EMPLOYEE "  
                  "is not defined in schema."  

Da der Fehler in der Datenquelle aufgetreten ist, hat der Treiber der Diagnosenachricht ein Präfix für den Datenquellenbezeichner ([Rdb]) hinzugefügt. Da es sich bei dem Treiber um die Komponente handelte, die mit der Datenquelle verknüpft war, wurden der Diagnosemeldung Präfixe für den Anbieter ([Microsoft]) und den Bezeichner ([ODBC Rdb Driver]) hinzugefügt.