以 DBMS 為基礎的驅動程式診斷範例

以 DBMS 為基礎的驅動程式會將要求傳送至 DBMS,並透過驅動程式管理員將資訊傳回至應用程式。 由於驅動程式是與驅動程式管理員相連的元件,因此其會格式化並傳回 SQLGetDiagRec 的引數。

例如,如果使用 SQL/Services,當適用於 Oracle Rdb 的 Microsoft 驅動程式遇到不正確的資料指標名稱時,可能會從 SQLGetDiagRec 傳回下列值:

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

由於驅動程式發生錯誤,因此會將前置詞新增至廠商 ([Microsoft]) 的診斷訊息和驅動程式 ([ODBC Rdb 驅動程式])。

如果 DBMS 找不到 EMPLOYEE 資料表,驅動程式可能會格式化並從 SQLGetDiagRec 傳回下列值:

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

由於資料來源發生錯誤,因此驅動程式會將資料來源識別碼的前置詞 ([Rdb]) 新增至診斷訊息。 由於驅動程式是與資料來源相連的元件,因此已將其廠商的前置詞 ([Microsoft]) 和識別碼 ([ODBC Rdb 驅動程式]) 新增至診斷訊息。