Пример диагностики драйверов на основе файлов
Драйвер на основе файлов выступает как в качестве драйвера 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]).