基于 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 dBASE 驱动程序])的诊断消息添加了前缀。
如果 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 Driver]) 的前缀。