Поделиться через


Пример диагностики драйверов на основе файлов

Драйвер на основе файлов выступает как в качестве драйвера ODBC, так и в качестве источника данных. Поэтому он может создавать ошибки и предупреждения как компонент в подключении ODBC, так и в качестве источника данных. Так как он также является компонентом, который взаимодействует с диспетчером драйверов, он форматирует и возвращает аргументы для SQLGetDiagRec.

Например, если драйвер Microsoft для dBASE не мог выделить достаточную память, он может вернуть следующие значения из SQLGetDiagRec:

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

Так как эта ошибка не связана с источником данных, драйвер добавил префиксы только в диагностическое сообщение поставщика ([Майкрософт]) и драйвер ([драйвер ODBC dBASE]).

Если драйвер не удалось найти файл Employee.dbf, он может вернуть следующие значения из SQLGetDiagRec:

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

Так как эта ошибка связана с источником данных, драйвер добавил формат файла источника данных ([dBASE]) в качестве префикса в диагностическое сообщение. Так как драйвер также был компонентом, интерфейсируемым с источником данных, он добавил префиксы для поставщика ([Майкрософт]) и драйвера ([ODBC dBASE Driver]).