Partager via


Procédure : traiter les erreurs ODBC (ODBC)

Deux appels de fonctions ODBC peuvent être utilisés pour extraire les messages ODBC: SQLGetDiagRec et SQLGetDiagField. Pour obtenir les informations ODBC de base dans les champs de diagnostic SQLState, pfNative et ErrorMessage, appelez SQLGetDiagRec jusqu'à ce que SQL_NO_DATA soit retourné. Pour chaque enregistrement de diagnostic, SQLGetDiagField peut être appelé pour extraire les champs individuels. Tous les champs spécifiques au pilote doivent être extraits à l'aide de SQLGetDiagField.

SQLGetDiagRec et SQLGetDiagField sont traités par Gestionnaire de pilote ODBC, et non par un pilote individuel. Le Gestionnaire de pilote ODBC ne met pas en cache les champs de diagnostic spécifiques aux pilotes tant qu'une connexion n'a pas été établie avec succès. L'appel de SQLGetDiagField pour les champs de diagnostic spécifiques aux pilotes n'est pas possible avant une connexion réussie. Les commandes de connexion ODBC sont incluses dans ce cas de figure, même si elles retournent SQL_SUCCESS_WITH_INFO. Les champs de diagnostic spécifiques au pilote ne seront pas disponibles jusqu'au prochain appel d'une fonction ODBC.

Remarque

Il existe un exemple complet qui affiche un gestionnaire d'erreurs simple appelant SQLGetDiagRec pour les informations ODBC standard. Il vérifie ensuite s'il existe une connexion valide et, si tel est le cas, appelle SQLGetDiagField pour les champs de diagnostic propres aux pilotes ODBC SQL Server.

L'exemple de code complet se trouve dans le fichier ProcessODBCErrors.cpp, que vous pouvez télécharger à partir de la page Téléchargements SQL Server sur MSDN (en anglais). Cet exemple a été développé à l'aide de Microsoft Visual C++ 2005 et a été développé pour ODBC version 3.0 ou ultérieure.

Remarque relative à la sécuritéRemarque relative à la sécurité

Si possible, utilisez l'authentification Windows. Si l'authentification Windows n'est pas disponible, invitez les utilisateurs à entrer leurs informations d'identification au moment de l'exécution. Évitez de stocker ces informations dans un fichier. Si vous devez rendre les informations d'identification persistantes, chiffrez-les avec l'API de chiffrement Win32.

Voir aussi

Autres ressources