Compartilhar via


Exemplo de diagnóstico de gateways

Em uma arquitetura de gateway, um driver envia solicitações para um gateway que dá suporte a ODBC. O gateway envia as solicitações para um DBMS. Como ele também é o componente que faz interface com o Gerenciador de Driver, o driver formata e retorna argumentos para SQLGetDiagRec.

Por exemplo, se o Oracle baseou um gateway para Rdb no Microsoft Open Data Services e se o Rdb não conseguiu localizar a tabela EMPLOYEE, o gateway pode gerar esta mensagem de diagnóstico:

"[42S02][-1][DEC][ODS Gateway][Rdb]%SQL-F-RELNOTDEF, Table EMPLOYEE is not defined "  
   "in schema."  

Como o erro ocorreu na fonte de dados, o gateway adicionou um prefixo para o identificador da fonte de dados ([Rdb]) à mensagem de diagnóstico. Como o gateway era o componente que fazia interface com a fonte de dados, ele adicionou prefixos para seu fornecedor ([DEC]) e identificador ([ODS Gateway]) à mensagem de diagnóstico. Ele também adicionou o valor SQLSTATE e o código de erro Rdb ao início da mensagem de diagnóstico. Isso permitiu que ele preservasse a semântica de sua própria estrutura de mensagem e ainda fornecesse as informações de diagnóstico ODBC para o driver. O driver analisa as informações de erro anexadas à instrução de erro pelo gateway.

Considerando que o driver de gateway é o componente que faz interface com o Gerenciador de Driver, ele usaria a mensagem de diagnóstico anterior para formatar e retornar os seguintes valores de SQLGetDiagRec:

SQLSTATE:         "42S02"  
Native Error:      -1  
Diagnostic Msg:   "[DEC][ODS Gateway][Rdb]%SQL-F-RELNOTDEF, Table EMPLOYEE is not "  
                  "defined in schema."