Partilhar via


Mensagens de diagnóstico

Uma mensagem de diagnóstico é devolvida a cada SQLSTATE. O mesmo SQLSTATE é frequentemente devolvido com várias mensagens diferentes. Por exemplo, SQLSTATE 42000 (erro de sintaxe ou violação de acesso) é retornado para a maioria dos erros de sintaxe SQL. No entanto, cada erro de sintaxe provavelmente será descrito por uma mensagem diferente.

Mensagens de diagnóstico de exemplo estão listadas na coluna Erro na tabela de SQLSTATEs no Apêndice A e em cada função. Embora os condutores possam devolver estas mensagens, é mais provável que devolvam a mensagem que lhes é transmitida pela fonte de dados.

As aplicações geralmente mostram mensagens de diagnóstico ao utilizador, juntamente com o SQLSTATE e o código de erro nativo. Isto ajuda o utilizador e o pessoal de apoio a determinar a causa de quaisquer problemas. A informação dos componentes incorporada na mensagem é particularmente útil para isso.

As mensagens de diagnóstico provêm de fontes de dados e componentes numa ligação ODBC, como drivers, gateways e o Driver Manager. Normalmente, as fontes de dados não suportam diretamente o ODBC. Consequentemente, se um componente numa ligação ODBC receber uma mensagem de uma fonte de dados, deve identificar essa fonte como a fonte da mensagem. Deve também identificar-se 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 numa fonte de dados, a mensagem de diagnóstico deve usar este formato:

[identificador-fornecedor][ODBC-identificador-componente]texto-fornecido-pelo-componente

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

[identificador-fornecedor][identificador-componente-ODBC][identificador-fonte-dados]texto-fornecido-pela-fonte

A tabela seguinte mostra o significado de cada elemento.

Elemento Meaning
Identificador de fornecedor Identifica o fornecedor do componente em que ocorreu o erro ou aviso ou que recebeu o erro ou aviso diretamente da fonte dos dados.
ODBC-identificador-componente Identifica o componente em que ocorreu o erro ou aviso ou que recebeu o erro ou aviso diretamente da fonte de dados.
identificador-fonte-de dados Identifica a fonte dos dados. Para drivers baseados em ficheiros, este é tipicamente um formato de ficheiro, como Xbase[1]. Para drivers baseados em sistemas de gestão de bases de dados (SGBD), este é o produto do SGBD.
texto-fornecido-componente- Gerado pelo componente ODBC.
data-source-supplied-text Gerado pela fonte de dados.

[1] Neste caso, o driver atua tanto como driver como como fonte de dados.

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