IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Intercepter les messages d'erreur delphi (exceptions EIBInterbaseError)


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 37
    Points
    37
    Par défaut Intercepter les messages d'erreur delphi (exceptions EIBInterbaseError)
    Quelqu'un aurait-il un exemple d'un try except ou on intercepte des erreurs delphi concernant EIBInterbaseError de façon spécifique??

    Par exemple, comment intercepter une violation de clé? un champ not null vide? une erreur de type?

    PS : J'ai fait des recherches sur le internet mais je n'ai trouvé que la façon général d'intercepter ces erreurs.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try
      ....
    except
      on E: EIBInterbaseError do
      begin
         case E.IBErrorCode of
           ... Valeur à trouver par tatonnement en déclenchant les exceptions que l'on connait (c'est parfois moins long que chercher une doc introuvable)
         end;	
      end;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    c'est ça que j'appelle façon généralisée! comme ça j'affiche le même message pour toutes les erreur EIBInterbaseError!! Ce que je voudrait c'est afficher pour chaque type d'erreur un message spécifique!

  4. #4
    Membre habitué Avatar de bs.box
    Inscrit en
    Mai 2008
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 174
    Points : 173
    Points
    173
    Par défaut Bonjour..
    D'aprés,
    Citation Envoyé par ShaiLeTroll Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try
      ....
    except
      on E: EIBInterbaseError do
      begin
         case E.IBErrorCode of
           ... Valeur à trouver par tatonnement en déclenchant les exceptions que l'on connait (c'est parfois moins long que chercher une doc introuvable)
         end;	
      end;
    end;
    Et que :
    Citation Envoyé par badilou Voir le message
    c'est ça que j'appelle façon généralisée! comme ça j'affiche le même message pour toutes les erreur EIBInterbaseError!! Ce que je voudrait c'est afficher pour chaque type d'erreur un message spécifique!
    Donc, il ne te rest que de contiuner le code proposé par ShaiLeTroll

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     try 
       ... 
      except 
         on  EZeroDivide  do  ShowMessage('erreur1');
         on  EOverflow  do  ShowMessage('erreur2');
         on  EMathError  do  ShowMessage('erreur3');
      else 
        ShowMessage('Autres..');
      end ;
    ______________________________________________________________________
    Le sketch qui m'a marqué le plus! écoutez les programmeurs : Site de Yan Marchal

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    justement, l'utilisation de ces codes, c'est ce que je cherche.. par exemple pour la violation de clé? violation d'une contraine de champ unique? d'un champ not null...

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Il faut tester IBErrorCode, lit bien mon code !
    une fois l'exception EIBInterbaseError catché, il faut remplir un case

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try
      ....
    except
      on E: EIBInterbaseError do
      begin
         case E.IBErrorCode of
           1: //violation de clé;
           2: //violation d'une contraine de champ unique;
           3: //champ not null... 
         end;	
      end;
    end;
    à toi de trouver les valeurs, 1, 2 et 3 ce qui ne devrait pas être difficile en les provoquant volontairement et en affichant la valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try
      // Code qui fera Exception je le sais !
    except
      on E: EIBInterbaseError do
      begin
         ShowMessage(Format('IBErrorCode : %d, SQLCode : %d', [E.IBErrorCode, E.SQLCode]));
      end;
    end;
    Après ce que tu en fais, là, ... personnellement, je n'ai jamais d'erreur de ce style, je suis en MySQL 4 au bureau, et à par l'AutoInc, et bien on fait toute la partie relation à la main soit comme des porcs (95% des applis) soit via une couche objet bien tarée de ma conception (5% des applis), et puis l'on Insert uniquement via SQL donc on a une erreur SQL pure qui débarque, et ce n'est en général que la syntaxe qui est ratée durant la phase de débug
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    oups!! ou avais-je la tête!! c'est vrai que c'est ce que t'avais dit! sorry!! et merci beaucoup!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Intercepter les messages d'erreurs de requetes
    Par sabdoul dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/04/2013, 12h08
  2. Intercepter les messages d'erreur du SGBD FireBird
    Par adelneo dans le forum Bases de données
    Réponses: 13
    Dernier message: 25/11/2011, 16h18
  3. Gérer les messages d'erreurs dans delphi
    Par nakry dans le forum Débuter
    Réponses: 2
    Dernier message: 11/05/2010, 14h32
  4. Rediriger les messages d'erreur Delphi
    Par petitcoucou31 dans le forum Langage
    Réponses: 17
    Dernier message: 20/03/2008, 00h10
  5. Réponses: 2
    Dernier message: 06/04/2004, 08h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo