Cómo procesar errores de ODBC (ODBC)
Se pueden utilizar dos llamadas a función de ODBC para recuperar los mensajes de ODBC: SQLGetDiagRec y SQLGetDiagField. Para obtener la información principal relacionada con ODBC de los campos de diagnóstico SQLSTATE, pfNative y ErrorMessage, llame a hasta que devuelva SQL_NO_DATA. Para cada registro de diagnóstico, se puede llamar a SQLGetDiagField para recuperar los campos individuales. Todos los campos específicos del controlador se deben recuperar utilizando SQLGetDiagField.
SQLGetDiagRec y SQLGetDiagField los procesa el Administrador de controladores ODBC, no un controlador individual. El Administrador de controladores ODBC no almacena en memoria caché los campos de diagnóstico específicos del controlador hasta que no se ha realizado una conexión correcta. No se puede llamar a SQLGetDiagField para los campos de diagnóstico específicos del controlador antes de que la conexión no sea correcta. Esto incluye los comandos de conexión ODBC, aun cuando devuelvan SQL_SUCCESS_WITH_INFO. Los campos de diagnóstico específicos del controlador no estarán disponibles hasta la llamada a función de ODBC siguiente.
Observaciones
Hay un ejemplo completo que muestra un controlador de errores simple que llama a para obtener la información de ODBC estándar. Después, comprueba si hay una conexión válida y, si la hay, llama a SQLGetDiagField para los campos de diagnóstico específicos del controlador ODBC de SQL Server.
El código de ejemplo completo está en el archivo, ProcessODBCErrors.cpp, que puede descargar de la página de descargas de SQL en MSDN. Este ejemplo se desarrolló utilizando Microsoft Visual C++ 2005 para ODBC versión 3.0 o posterior.
![]() |
---|
Siempre que sea posible, utilice la autenticación de Windows. Si la autenticación de Windows no está disponible, solicite a los usuarios que escriban sus credenciales en tiempo de ejecución. No guarde las credenciales en un archivo. Si tiene que conservar las credenciales, debería cifrarlas con la API de criptografía de Win32. |