Exemplo de diagnóstico de driver baseado em arquivo
Um driver baseado em arquivo age como um driver ODBC e como uma fonte de dados. Portanto, ele pode gerar erros e avisos tanto como um componente em uma conexão ODBC quanto como uma fonte de dados. Como ele também é o componente que faz interface com o Gerenciador de Driver, formata e retorna argumentos para SQLGetDiagRec.
Por exemplo, se um driver da Microsoft para dBASE não conseguir alocar memória suficiente, ele poderá retornar os seguintes valores de SQLGetDiagRec:
SQLSTATE: "HY001"
Native Error: 42052
Diagnostic Msg: "[Microsoft][ODBC dBASE Driver]Unable to allocate sufficient memory."
Como esse erro não estava relacionado à fonte de dados, o driver apenas adicionou prefixos à mensagem de diagnóstico para o fornecedor ([Microsoft]) e o driver ([ODBC dBASE Driver]).
Se o driver não conseguir localizar o arquivo Employee.dbf, ele poderá retornar os seguintes valores de SQLGetDiagRec:
SQLSTATE: "42S02"
Native Error: -1305
Diagnostic Msg: "[Microsoft][ODBC dBASE Driver][dBASE]No such table or object"
Como esse erro estava relacionado à fonte de dados, o driver adicionou o formato de arquivo da fonte de dados ([dBASE]) como prefixo à mensagem de diagnóstico. Como o driver também era o componente que fazia interface com a fonte de dados, ele adicionou prefixos para o fornecedor ([Microsoft]) e o driver ([ODBC dBASE Driver]).