Compartilhar via


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]).