Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Quando uma aplicação chama uma função ODBC, o driver executa a função e retorna informação de diagnóstico de duas formas: um código de retorno indica o sucesso ou falha global de uma função ODBC, e os registos de diagnóstico fornecem informações detalhadas sobre a função. Os registos de diagnóstico incluem um registo de cabeçalho e registos de estado. Pelo menos um registo de diagnóstico, o registo de cabeçalho, é devolvido mesmo que a função tenha sucesso.
A informação de diagnóstico é usada no tempo do desenvolvimento para detetar erros de programação, como handles inválidos e erros de sintaxe em instruções SQL codificadas fixamente. Também é utilizado em tempo de execução para detetar erros e avisos em tempo de execução, como truncamento de dados, violações de regras e erros de sintaxe em instruções SQL introduzidas pelo utilizador. A lógica do programa baseia-se geralmente em códigos de retorno.
Por exemplo, após uma aplicação chamar SQLFetch para recuperar as linhas de um conjunto de resultados, o código de retorno indica se o fim do conjunto de resultados foi alcançado (SQL_NO_DATA), se foram devolvidas mensagens informativas (SQL_SUCCESS_WITH_INFO), ou se ocorreu um erro (SQL_ERROR).
Se o driver ODBC do SQL Server Native Client devolver algo diferente de SQL_SUCCESS, a aplicação pode chamar SQLGetDiagRec para recuperar quaisquer mensagens informativas ou de erro. Use SQLGetDiagRec para subir e descer o conjunto de mensagens se houver mais do que uma mensagem.
O código de retorno SQL_INVALID_HANDLE indica sempre um erro de programação e nunca deve ser encontrado em tempo de execução. Todos os outros códigos de retorno fornecem informação em tempo de execução, embora SQL_ERROR possam indicar um erro de programação.
A API nativa Microsoft SQL Server original, DB-Library de C, permite que uma aplicação instale funções de tratamento de erros e mensagens de callback que retornam erros ou mensagens. Algumas instruções Transact-SQL, como PRINT, RAISERROR, DBCC e SET, devolvem os seus resultados à função de manipulador de mensagens DB-Library em vez de a um conjunto de resultados. No entanto, a API ODBC não tem essa capacidade de callback. Quando o driver ODBC SQL Server Native Client deteta mensagens provenientes de SQL Server, define o código de retorno ODBC para SQL_SUCCESS_WITH_INFO ou SQL_ERROR e devolve a mensagem como um ou mais registos de diagnóstico. Portanto, uma aplicação ODBC deve testar cuidadosamente estes códigos de retorno e chamar SQLGetDiagRec para recuperar os dados da mensagem.
Para informações sobre erros de rastreamento, consulte Rastreio de Acesso a Dados. Para informações sobre melhorias no rastreio de erros adicionadas no SQL Server 2012 (11.x), consulte Acesso à Informação de Diagnóstico no Registo de Eventos Estendido.