Compartilhar via


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