Compartilhar via


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.