Exemplo de diagnóstico de driver baseado em arquivo

Um driver baseado em arquivo atua tanto como um driver ODBC quanto como uma fonte de dados. Portanto, ele pode gerar erros e avisos como um componente em uma conexão ODBC e como uma fonte de dados. Como ele também é o componente que faz interface com o Gerenciador de Driver, ele formata e retorna argumentos para SQLGetDiagRec.

Por exemplo, se um driver da Microsoft para dBASE não puder 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 só adicionou prefixos à mensagem de diagnóstico para o fornecedor ([Microsoft]) e o driver ([Driver ODBC dBASE]).

Se o driver não conseguir localizar o arquivo Employee.dbf, ele poderá retornar os seguintes valores do 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 um prefixo para a 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 ([Driver ODBC dBASE]).