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.