Partager via


Règles de gestion des diagnostics

Les règles suivantes régissent la gestion des diagnostics dans SQLGetDiagRec et SQLGetDiagField.

Pour tous les composants ODBC :

  • Ne doit pas remplacer, modifier ou masquer les erreurs ou avertissements reçus d’un autre composant ODBC.

  • Peut ajouter un enregistrement d’état supplémentaire lorsqu’il reçoit un message de diagnostic d’un autre composant ODBC. L’enregistrement ajouté doit ajouter une valeur d’information réelle au message d’origine.

Pour le composant ODBC qui interface directement une source de données :

  • Doit préfixer son identificateur de fournisseur, son identificateur de composant et l’identificateur de la source de données pour le message de diagnostic qu’il reçoit de la source de données.

  • Doit conserver le code d’erreur natif de la source de données.

  • Doit conserver le message de diagnostic de la source de données.

Pour tout composant ODBC qui génère une erreur ou un avertissement indépendamment de la source de données :

  • Doit fournir l’état SQLSTATE correct pour l’erreur ou l’avertissement.

  • Doit générer le texte du message de diagnostic.

  • Doit préfixer son identificateur de fournisseur et son identificateur de composant au message de diagnostic.

  • Doit retourner un code d’erreur natif, si un code est disponible et significatif.

Pour le composant ODBC qui s’interface avec le Gestionnaire de pilotes :

  • Doit initialiser les arguments de sortie de SQLGetDiagRec et SQLGetDiagField.

  • Doit mettre en forme et retourner les informations de diagnostic en tant qu’arguments de sortie de SQLGetDiagRec et SQLGetDiagField lorsque cette fonction est appelée.

Pour un composant ODBC autre que le Gestionnaire de pilotes :

  • Doit définir SQLSTATE en fonction de l’erreur native. Pour les pilotes basés sur des fichiers et les pilotes SGBD qui n’utilisent pas de passerelle, le pilote doit définir SQLSTATE. Pour les pilotes SGBD qui utilisent une passerelle, le pilote ou une passerelle prenant en charge ODBC peut définir SQLSTATE.