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."