2010-12-15 98 views
0

J'utilise ADO pour lire et écrire une base de données à partir d'une application VB6. Naturellement, l'accès à la base de données peut renvoyer des erreurs. J'affiche actuellement un message d'erreur par une méthode empruntée d'ici http://www.devx.com/tips/Tip/13483 mais je voudrais, dans mon code, agir différemment selon que l'erreur est une violation de contrainte d'index, une violation de contrainte de colonne, un trigger forcé une erreur et ainsi de suite. Aurais-je raison de regarder dans la partie .Number de la première erreur dans la collection? Ou le dernier?Comment distinguer les erreurs de base de données ADO dans VB6

Et est-ce que quelqu'un sait où je pourrais trouver une liste des numéros d'erreur utilisés ici?

Répondre

0

Une étude plus approfondie de la structure de données renvoyée révèle qu'elle a un membre .SQLState, qui contient ce que je recherche. Toutes mes excuses à Dan et à systempuntoout pour ne pas avoir remarqué cela auparavant.

2

ErrorValueEnum Spécifie le type d'erreur d'exécution ADO avec une liste de codes d'erreur ADO.

+0

Merci, systempuntoout. C'est le type de liste que je recherche, mais j'ai vraiment besoin d'un avec ce que l'on pourrait appeler des erreurs de base de données "logiques", plutôt que celles plus "mécaniques". –

1

Non, Err.Number contiendra uniquement l'erreur du point de vue ADO. Les erreurs internes de base de données sont spécifiques à la base de données Par exemple, dans Oracle, presque toutes les erreurs qui vous intéressent correspondent au modèle ORA-(\d{5}) et vous pouvez extraire cette valeur de Err.Description pour connaître le code d'erreur exact.