基于文件的驱动程序诊断示例

基于文件的驱动程序既充当 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 驱动程序])添加了前缀。