Mensagens de diagnóstico

Uma mensagem de diagnóstico é retornada com cada SQLSTATE. O mesmo SQLSTATE geralmente é retornado com várias mensagens diferentes. Por exemplo, SQLSTATE 42000 (erro de sintaxe ou violação de acesso) é retornado para a maioria dos erros na sintaxe SQL. No entanto, é provável que cada erro de sintaxe seja descrito por uma mensagem diferente.

As mensagens de diagnóstico de exemplo são listadas na coluna Erro na tabela de SQLSTATEs no Apêndice A e em cada função. Embora os drivers possam retornar essas mensagens, é mais provável que eles retornem qualquer mensagem que lhes seja passada pela fonte de dados.

Os aplicativos geralmente exibem mensagens de diagnóstico para o usuário, juntamente com o SQLSTATE e o código de erro nativo. Isso ajuda o usuário e a equipe de suporte a determinar a causa de quaisquer problemas. As informações do componente incorporadas na mensagem são particularmente úteis para fazer isso.

As mensagens de diagnóstico vêm de fontes de dados e componentes em uma conexão ODBC, como drivers, gateways e o Gerenciador de Drivers. Normalmente, as fontes de dados não oferecem suporte direto a ODBC. Consequentemente, se um componente em uma conexão ODBC recebe uma mensagem de uma fonte de dados, ele deve identificar a fonte de dados como a fonte da mensagem. Ele também deve se identificar como o componente que recebeu a mensagem.

Se a origem de um erro ou aviso for um componente em si, a mensagem de diagnóstico deve explicar isso. Portanto, o texto das mensagens tem dois formatos diferentes. Para erros e avisos que não ocorrem em uma fonte de dados, a mensagem de diagnóstico deve usar este formato:

[ vendor-identifier ][ ODBC-component-identifier ] component-supplied-text

Para erros e avisos que ocorrem em uma fonte de dados, a mensagem de diagnóstico deve usar este formato:

[ vendor-identifier ][ ODBC-component-identifier ][ data-source-identifier ] data-source-supplied-text

A tabela a seguir mostra os atributos do elemento.

Element Significado
identificador do fornecedor Identifica o fornecedor do componente no qual o erro ou aviso ocorreu ou que recebeu o erro ou aviso diretamente da fonte de dados.
ODBC-component-identifier Identifica o componente no qual o erro ou aviso ocorreu ou que recebeu o erro ou aviso diretamente da fonte de dados.
data-source-identifier Identifica a fonte de dados. Para drivers baseados em arquivo, normalmente é um formato de arquivo, como Xbase[1] Para drivers baseados em DBMS, esse é o produto DBMS.
component-supplied-text Gerado pelo componente ODBC.
data-source-supplied-text Gerado pela fonte de dados.

[1] Nesse caso, o driver está agindo como o driver e a fonte de dados.

Os colchetes ([ ]) devem ser incluídos na mensagem e não indicam itens opcionais.