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

Connexion aux bases de données Firebird Discussion :

Exception de trigger indigeste


Sujet :

Connexion aux bases de données Firebird

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Exception de trigger indigeste
    à tous

    J'ai hérité d'une application qui utilise les triggers à qui mieux mieux. Certains, et même beaucoup, renvoient des exceptions avec message, Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if erreur = 1 then
      Exception MESSAGE_ERREUR_DATE;
    Les triggers sont, soit des BeforeInsert, soit des BeforeUpdate.

    Jusque là, rien de très spécial. Mais à l'exécution ces messages sont plus rébarbatifs que ceux de Windows (et ce n'est pas peu dire! )

    Ma question est : existe-t-il un moyen d'intercepter l'exception du trigger avant qu'il ne l'envoie, pour lui substituer un texte plus clair.

    Précision, la base est sous Firebird 2.1...mais un passage à un Firebird plus récent est parfaitement envisageable.

    Merci d'avance pour toute suggestion
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  2. #2
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Les informations données par le lien ne répondent, hélas pas à la question. J'ai déjà fait tout ce qui est dit. Déjà, le when any n'est accepté qu'après un update ou un insert et donc le trigger a déjà balancé son message.

    Mettre un message dans le trigger, c'est déjà fait, et voilà ce que cela donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Le projet MON_PROJET a provoqué une classe d'exception EZSQLException avec le message SQL3 Error: exception 16 DETAIL_LOC_VERIF_DATE_TIU_DETAIL_LOCATION:  
    Date/Heure retour invalide avec Date/Heure sortie At trigger 'TBIU_DET_LOC_VERIF_DATE' At procedure DIMINUE line: 60, col 3 Error Code -836, exception 
    'The SQL EXECUTE PROCEDURE DIMINUE(?). Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer
    et la seule partie qui est intéressante est celle en rouge. Or c'est précisément cette partie que je veux, pas le reste !
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  4. #4
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    et bien tu parses dans ton application le message d'erreur, c'est tout
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  5. #5
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Donc en fait on ne peut pas intercepter le trigger : Domage. cela signifie que les exceptions ne servent à rien, puisqu'il faut les refaire dans le programme ! Et c'est ce que j'ai fait
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

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

Discussions similaires

  1. Catcher exception Trigger
    Par pirvo dans le forum JPA
    Réponses: 0
    Dernier message: 15/12/2009, 14h21
  2. Exception triggers avec SQLite
    Par sabrine2 dans le forum SQLite
    Réponses: 2
    Dernier message: 14/09/2009, 11h35
  3. Réponses: 3
    Dernier message: 16/01/2009, 10h49
  4. exception trigger key-commit
    Par decksroy dans le forum Forms
    Réponses: 4
    Dernier message: 25/01/2008, 17h27
  5. Réponses: 3
    Dernier message: 09/11/2004, 14h43

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