Exemplo de diagnóstico de driver baseado em DBMS
Um driver baseado em DBMS envia solicitações para um DBMS e retorna informações para o aplicativo por meio do Gerenciador de Driver. Como o driver é o componente que faz interface com o Gerenciador de Driver, ele formata e retorna argumentos para SQLGetDiagRec.
Por exemplo, se, usando SQL/Services, um driver da Microsoft para Oracle Rdb encontrou um nome de cursor inválido, ele pode retornar os seguintes valores de SQLGetDiagRec:
SQLSTATE: "34000"
Native Error: 0
Diagnostic Msg: "[Microsoft][ODBC Rdb Driver]Invalid cursor name: EMPLOYEE_CURSOR."
Como o erro ocorreu no driver, ele adicionou prefixos à mensagem de diagnóstico para o fornecedor ([Microsoft]) e o driver ([ODBC Rdb Driver]).
Se o DBMS não conseguiu localizar a tabela EMPLOYEE, o driver pode formatar e retornar os seguintes valores de SQLGetDiagRec:
SQLSTATE: "42S02"
Native Error: -1
Diagnostic Msg: "[Microsoft][ODBC Rdb Driver][Rdb] %SQL-F-RELNOTDEF, Table EMPLOYEE "
"is not defined in schema."
Como o erro ocorreu na fonte de dados, o driver adicionou um prefixo para o identificador da fonte de dados ([Rdb]) à mensagem de diagnóstico. Como o driver era o componente que fazia interface com a fonte de dados, ele adicionava prefixos para seu fornecedor ([Microsoft]) e identificador ([ODBC Rdb Driver]) à mensagem de diagnóstico.