[ADO] - Comment faire afficher les messages d'erreurs SQL.
3 réponses
Teddy
Bonjour à tous,
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une table à laquelle mon
programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite lorsque je tente d'écrire
par exemple une date en '01/01/2005' dans un champ où la date doit être < '01/01/2004' (contrainte
ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup plus parlante pour un
utilisateur du programme qui effectue la saisie que le message renvoyé par ADO et récupéré par
Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
" Teddy" a écrit dans le message de news:%
Bonjour à tous,
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une
table à laquelle mon
programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite
lorsque je tente d'écrire
par exemple une date en '01/01/2005' dans un champ où la date doit être <
'01/01/2004' (contrainte
ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup
plus parlante pour un
utilisateur du programme qui effectue la saisie que le message renvoyé par
ADO et récupéré par
Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Hello,
Curieux ton problème. Quand je fais comme dans ton exemple, si je rentre une date non conforme à ma règle, je récupère ceci dans err.Description:
"Une ou plusieurs valeurs sont interdites par la règle de validation '<#1/1/2004#' déterminée pour 'Table1.date'. Saisissez une valeur que l'expression acceptera pour ce champ."
Tu n'obtiens pas un message comme celui-ci ? Peux tu nous dire ce que tu reçois comme message?
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
" Teddy" <teddy@wanadoo.fr> a écrit dans le message de
news:%235UipLhDFHA.1040@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une
table à laquelle mon
programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite
lorsque je tente d'écrire
par exemple une date en '01/01/2005' dans un champ où la date doit être <
'01/01/2004' (contrainte
ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup
plus parlante pour un
utilisateur du programme qui effectue la saisie que le message renvoyé par
ADO et récupéré par
Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Hello,
Curieux ton problème. Quand je fais comme dans ton exemple, si je
rentre une date non conforme à ma règle, je récupère ceci dans
err.Description:
"Une ou plusieurs valeurs sont interdites par la règle de validation
'<#1/1/2004#' déterminée pour 'Table1.date'. Saisissez une valeur que
l'expression acceptera pour ce champ."
Tu n'obtiens pas un message comme celui-ci ? Peux tu nous dire ce que tu
reçois comme message?
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une
table à laquelle mon
programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite
lorsque je tente d'écrire
par exemple une date en '01/01/2005' dans un champ où la date doit être <
'01/01/2004' (contrainte
ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup
plus parlante pour un
utilisateur du programme qui effectue la saisie que le message renvoyé par
ADO et récupéré par
Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Hello,
Curieux ton problème. Quand je fais comme dans ton exemple, si je rentre une date non conforme à ma règle, je récupère ceci dans err.Description:
"Une ou plusieurs valeurs sont interdites par la règle de validation '<#1/1/2004#' déterminée pour 'Table1.date'. Saisissez une valeur que l'expression acceptera pour ce champ."
Tu n'obtiens pas un message comme celui-ci ? Peux tu nous dire ce que tu reçois comme message?
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
Gloops
Bonjour,
Certaines plateformes associent un message d'erreur à la contrainte d'intégrité, à savoir que si la date n'est pas dans la fourchette, plutôt que d'avoir un truc du style "erreur liée à l'objet ou à l'application", apparaît le message qu'on a saisi dans la propriété voulue, à savoir "la date doit être comprise entre 01/01/1980 et 01/01/2004", ce qui a une petite touche un chouïa plus claire.
Lorsque ce n'est pas le cas, on a aussi la solution de renoncer à utiliser la contrainte d'intégrité, et se la programmer soi-même dans l'interface. Tant que l'utilisateur saisit une date hors fourchette on lui met le couteau sous la ... euh pardon, on le rappelle à l'ordre, sous la forme voulue. Une fois que la date est correcte, hop, plus de commentaire, on l'inscrit dans la table lors de la validation.
Bien entendu c'est lourdingue, mais j'ai déjà vu faire, et ça marche. ____________________________________ Teddy a écrit, le 08/02/2005 20:18 :
Bonjour à tous,
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une table à laquelle mon programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite lorsque je tente d'écrire par exemple une date en '01/01/2005' dans un champ où la date doit être < '01/01/2004' (contrainte ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup plus parlante pour un utilisateur du programme qui effectue la saisie que le message renvoyé par ADO et récupéré par Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Ted
Bonjour,
Certaines plateformes associent un message d'erreur à la contrainte
d'intégrité, à savoir que si la date n'est pas dans la fourchette,
plutôt que d'avoir un truc du style "erreur liée à l'objet ou à
l'application", apparaît le message qu'on a saisi dans la propriété
voulue, à savoir "la date doit être comprise entre 01/01/1980 et
01/01/2004", ce qui a une petite touche un chouïa plus claire.
Lorsque ce n'est pas le cas, on a aussi la solution de renoncer à
utiliser la contrainte d'intégrité, et se la programmer soi-même dans
l'interface. Tant que l'utilisateur saisit une date hors fourchette on
lui met le couteau sous la ... euh pardon, on le rappelle à l'ordre,
sous la forme voulue. Une fois que la date est correcte, hop, plus de
commentaire, on l'inscrit dans la table lors de la validation.
Bien entendu c'est lourdingue, mais j'ai déjà vu faire, et ça marche.
____________________________________
Teddy a écrit, le 08/02/2005 20:18 :
Bonjour à tous,
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une table à laquelle mon
programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite lorsque je tente d'écrire
par exemple une date en '01/01/2005' dans un champ où la date doit être < '01/01/2004' (contrainte
ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup plus parlante pour un
utilisateur du programme qui effectue la saisie que le message renvoyé par ADO et récupéré par
Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Certaines plateformes associent un message d'erreur à la contrainte d'intégrité, à savoir que si la date n'est pas dans la fourchette, plutôt que d'avoir un truc du style "erreur liée à l'objet ou à l'application", apparaît le message qu'on a saisi dans la propriété voulue, à savoir "la date doit être comprise entre 01/01/1980 et 01/01/2004", ce qui a une petite touche un chouïa plus claire.
Lorsque ce n'est pas le cas, on a aussi la solution de renoncer à utiliser la contrainte d'intégrité, et se la programmer soi-même dans l'interface. Tant que l'utilisateur saisit une date hors fourchette on lui met le couteau sous la ... euh pardon, on le rappelle à l'ordre, sous la forme voulue. Une fois que la date est correcte, hop, plus de commentaire, on l'inscrit dans la table lors de la validation.
Bien entendu c'est lourdingue, mais j'ai déjà vu faire, et ça marche. ____________________________________ Teddy a écrit, le 08/02/2005 20:18 :
Bonjour à tous,
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une table à laquelle mon programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite lorsque je tente d'écrire par exemple une date en '01/01/2005' dans un champ où la date doit être < '01/01/2004' (contrainte ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup plus parlante pour un utilisateur du programme qui effectue la saisie que le message renvoyé par ADO et récupéré par Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Ted
Teddy
Je vais essayer avec MySQL et SQL Server.
"Jean-Marc" a écrit dans le message de news: 42091f4c$0$22465$
" Teddy" a écrit dans le message de news:%
Bonjour à tous,
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une
table à laquelle mon
programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite
lorsque je tente d'écrire
par exemple une date en '01/01/2005' dans un champ où la date doit être <
'01/01/2004' (contrainte
ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup
plus parlante pour un
utilisateur du programme qui effectue la saisie que le message renvoyé par
ADO et récupéré par
Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Hello,
Curieux ton problème. Quand je fais comme dans ton exemple, si je rentre une date non conforme à ma règle, je récupère ceci dans err.Description:
"Une ou plusieurs valeurs sont interdites par la règle de validation '<#1/1/2004#' déterminée pour 'Table1.date'. Saisissez une valeur que l'expression acceptera pour ce champ."
Tu n'obtiens pas un message comme celui-ci ? Peux tu nous dire ce que tu reçois comme message?
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
Je vais essayer avec MySQL et SQL Server.
"Jean-Marc" <nospam_jean_marc_n2@yahoo.fr> a écrit dans le message de news:
42091f4c$0$22465$ba620e4c@news.skynet.be...
" Teddy" <teddy@wanadoo.fr> a écrit dans le message de
news:%235UipLhDFHA.1040@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une
table à laquelle mon
programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite
lorsque je tente d'écrire
par exemple une date en '01/01/2005' dans un champ où la date doit être <
'01/01/2004' (contrainte
ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup
plus parlante pour un
utilisateur du programme qui effectue la saisie que le message renvoyé par
ADO et récupéré par
Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Hello,
Curieux ton problème. Quand je fais comme dans ton exemple, si je
rentre une date non conforme à ma règle, je récupère ceci dans
err.Description:
"Une ou plusieurs valeurs sont interdites par la règle de validation
'<#1/1/2004#' déterminée pour 'Table1.date'. Saisissez une valeur que
l'expression acceptera pour ce champ."
Tu n'obtiens pas un message comme celui-ci ? Peux tu nous dire ce que tu
reçois comme message?
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
"Jean-Marc" a écrit dans le message de news: 42091f4c$0$22465$
" Teddy" a écrit dans le message de news:%
Bonjour à tous,
Je voudrais faire afficher la vraie raison d'un échec en écriture sur une
table à laquelle mon
programme est connecté via ADO.
Si je teste Err.Number et Err.Description, j'ai un message peu explicite
lorsque je tente d'écrire
par exemple une date en '01/01/2005' dans un champ où la date doit être <
'01/01/2004' (contrainte
ou règle d'intégrité référentielle sur ce champ).
Je voudrais que s'affiche la contrainte ou la règle d'intégrité beaucoup
plus parlante pour un
utilisateur du programme qui effectue la saisie que le message renvoyé par
ADO et récupéré par
Err.Number et Err.Description.
Auriez-vous des idées ou bien est-ce sans solution ?
Hello,
Curieux ton problème. Quand je fais comme dans ton exemple, si je rentre une date non conforme à ma règle, je récupère ceci dans err.Description:
"Une ou plusieurs valeurs sont interdites par la règle de validation '<#1/1/2004#' déterminée pour 'Table1.date'. Saisissez une valeur que l'expression acceptera pour ce champ."
Tu n'obtiens pas un message comme celui-ci ? Peux tu nous dire ce que tu reçois comme message?
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."