Compartilhar via


Como processar erros ODBC (ODBC)

É possível usar duas chamadas de função ODBC para recuperar mensagens ODBC: e SQLGetDiagField. Para obter informações relacionadas ao ODBC principal nos campos de diagnóstico SQLState, pfNative e ErrorMessage, chame SQLGetDiagRec até ele retornar SQL_NO_DATA. Para cada registro de diagnóstico, é possível chamar SQLGetDiagField a fim de recuperar campos individuais. Todos os campos específicos do driver devem ser recuperados usando SQLGetDiagField.

SQLGetDiagRec e SQLGetDiagField são processados pelo Gerenciador de Driver ODBC, não por um driver individual. O Gerenciador de Driver ODBC não armazena em cache campos de diagnóstico específicos do driver até que seja feita uma conexão bem-sucedida. Não é possível chamar SQLGetDiagField para campos de diagnóstico específicos do driver antes de obter uma conexão bem-sucedida. Isso inclui os comandos de conexão ODBC, mesmo se eles retornarem SQL_SUCCESS_WITH_INFO. Os campos de diagnóstico específicos do driver não estarão disponíveis até a próxima chamada de função ODBC.

Comentários

Há um exemplo completo disponível mostrando um manipulador de erros que chama SQLGetDiagRec para obter as informações ODBC padrão. Em seguida, ele testa uma conexão válida e, se houver uma, chama SQLGetDiagField para os campos de diagnósticos específicos do driver ODBC do SQL Server.

O código de exemplo completo se encontra no arquivo ProcessODBCErrors.cpp, que pode ser baixado na página SQL Server Downloads do MSDN. Esse exemplo foi desenvolvido com o Microsoft Visual C++ 2005 para o ODBC versão 3.0 ou posterior.

Observação sobre segurançaObservação sobre segurança

Quando possível, use a Autenticação do Windows. Se a Autenticação do Windows não estiver disponível, solicite aos usuários que digitem suas credenciais em tempo de execução. Evite armazenar as credenciais em um arquivo. Se for necessário manter as credenciais, criptografe-as com a API de criptografia Win32.

Consulte também

Outros recursos