File-Based 驱动程序诊断示例

基于文件的驱动程序既充当 ODBC 驱动程序,又充当数据源。 因此,它既可以作为 ODBC 连接中的一个组件,也可以作为数据源来生成错误和警告。 因为它也是与驱动程序管理器接口的组件,因此它格式化并返回 SQLGetDiagRec 的参数。

例如,如果 dBASE 的 Microsoft 驱动程序无法分配足够的内存,它可能会从 SQLGetDiagRec 返回以下值:

SQLSTATE:         "HY001"  
Native Error:      42052  
Diagnostic Msg:   "[Microsoft][ODBC dBASE Driver]Unable to allocate sufficient memory."  

由于此错误与数据源无关,驱动程序只向供应商([Microsoft])和驱动程序([ODBC dBASE 驱动程序])的诊断消息添加了前缀。

如果驱动程序找不到 Employee.dbf 文件,它可能会从 SQLGetDiagRec 返回以下值:

SQLSTATE:         "42S02"  
Native Error:      -1305  
Diagnostic Msg:   "[Microsoft][ODBC dBASE Driver][dBASE]No such table or object"  

由于此错误与数据源相关,因此驱动程序将数据源([dBASE])的文件格式添加为诊断消息的前缀。 由于驱动程序也是与数据源进行交互的组件,因此它为供应商([Microsoft])和驱动程序([ODBC dBASE 驱动程序])添加了前缀。