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