Partilhar via


Exemplo de Diagnóstico de Driver File-Based

Um driver baseado em ficheiros atua tanto como driver ODBC como fonte de dados. Pode, portanto, gerar erros e avisos tanto como componente numa ligação ODBC como fonte de dados. Como também é o componente que interage com o Gestor de Controladores, formata e devolve argumentos para SQLGetDiagRec.

Por exemplo, se um driver Microsoft para dBASE não conseguir alocar memória suficiente, pode devolver os seguintes valores do SQLGetDiagRec:

SQLSTATE:         "HY001"  
Native Error:      42052  
Diagnostic Msg:   "[Microsoft][ODBC dBASE Driver]Unable to allocate sufficient memory."  

Como este erro não estava relacionado com a fonte de dados, o driver apenas adicionou prefixos à mensagem de diagnóstico para o fornecedor ([Microsoft]) e para o driver ([ODBC dBASE Driver]).

Se o driver não conseguir encontrar o ficheiro Employee.dbf, pode devolver os seguintes valores do SQLGetDiagRec:

SQLSTATE:         "42S02"  
Native Error:      -1305  
Diagnostic Msg:   "[Microsoft][ODBC dBASE Driver][dBASE]No such table or object"  

Como este erro estava relacionado com a fonte de dados, o driver adicionou o formato de ficheiro da fonte de dados ([dBASE]) como prefixo à mensagem de diagnóstico. Como o driver também era o componente que interligava com a fonte de dados, adicionava prefixos para o fornecedor ([Microsoft]) e para o driver ([ODBC dBASE Driver]).