Partilhar via


Exemplo de diagnóstico de controlador DBMS-Based

Um controlador baseado em SGBD envia pedidos para um SGBD e devolve informações à aplicação através do Gestor de Drivers. Como o driver é o componente que interage com o Driver Manager, ele formata e devolve argumentos para SQLGetDiagRec.

Por exemplo, se, usando SQL/Services, um driver Microsoft para Oracle Rdb encontrar um nome de cursor inválido, poderá devolver os seguintes valores do SQLGetDiagRec:

SQLSTATE:         "34000"  
Native Error:      0  
Diagnostic Msg:   "[Microsoft][ODBC Rdb Driver]Invalid cursor name: EMPLOYEE_CURSOR."  

Como o erro ocorreu no driver, adicionou prefixos à mensagem de diagnóstico do fornecedor ([Microsoft]) e ao driver ([ODBC Rdb Driver]).

Se o SGBD não conseguisse encontrar a tabela EMPLOYEE, o controlador poderia formatar e devolver os seguintes valores do 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 controlador adicionou um prefixo para o identificador da fonte de dados ([Rdb]) à mensagem de diagnóstico. Como o driver era o componente que interligava com a fonte de dados, adicionava prefixos para o seu fornecedor ([Microsoft]) e identificador ([ODBC Rdb Driver]) à mensagem de diagnóstico.