Précédent   Forum du club des développeurs et IT Pro > Bases de données > Firebird > Connexion aux bases de données
Connexion aux bases de données Forum d'entraide sur la connectivité Firebird: composants, drivers, transactions, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/04/2012, 11h44   #1
JP.NUAGE
Membre éprouvé
 
Avatar de JP.NUAGE
 
Inscription : avril 2006
Messages : 582
Détails du profil
Informations personnelles :
Âge : 70

Informations forums :
Inscription : avril 2006
Messages : 582
Points : 416
Points : 416
Envoyer un message via Skype™ à JP.NUAGE
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 :
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)
JP.NUAGE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2012, 18h03   #2
makowski
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 259
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 50
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 259
Points : 3 580
Points : 3 580
voir :
http://www.firebirdsql.org/file/docu...exception.html
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2012, 22h04   #3
JP.NUAGE
Membre éprouvé
 
Avatar de JP.NUAGE
 
Inscription : avril 2006
Messages : 582
Détails du profil
Informations personnelles :
Âge : 70

Informations forums :
Inscription : avril 2006
Messages : 582
Points : 416
Points : 416
Envoyer un message via Skype™ à JP.NUAGE
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 :
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)
JP.NUAGE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2012, 10h28   #4
makowski
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 259
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 50
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 259
Points : 3 580
Points : 3 580
et bien tu parses dans ton application le message d'erreur, c'est tout
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2012, 15h08   #5
JP.NUAGE
Membre éprouvé
 
Avatar de JP.NUAGE
 
Inscription : avril 2006
Messages : 582
Détails du profil
Informations personnelles :
Âge : 70

Informations forums :
Inscription : avril 2006
Messages : 582
Points : 416
Points : 416
Envoyer un message via Skype™ à JP.NUAGE
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)
JP.NUAGE est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h56.


 
 
 
 
Partenaires

Hébergement Web