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

Firebird Discussion :

Firebird 2.1x trigger delete


Sujet :

Firebird

  1. #1
    Membre habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 221
    Points : 185
    Points
    185
    Par défaut Firebird 2.1x trigger delete
    Bonjour

    je souhaite intercepter un ordre delete sous condition
    dans le trigger before delete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE OR ALTER trigger "PRIX_PRODUITS_BD0" for "PRIX_PRODUITS"
    active before delete position 0
    AS
    begin
      /* Trigger text */
      if la condition est ok alors
        -- delete est ok
      sinon
         -- j' interromps le delete
      end
    end
    un petit coup de pouce , merci

    cordialement

    fred

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    La seule méthode est de lever une exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BEGIN
      IF (Condition PAS OK) THEN
        EXCEPTION ERR_DEL_RECORD;
    END
    ERR_DEL_RECORD étant défini ainsi, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE EXCEPTION ERR_DEL_RECORD 'La suppression de cet enregistrement est interdite.';
    Il n'y a plus qu'a intercepter la levée d'exception dans l'application cliente.

    @+ Claudius

  3. #3
    Membre habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 221
    Points : 185
    Points
    185
    Par défaut
    Merci

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

Discussions similaires

  1. trigger delete pour plusieurs lignes
    Par Shabata dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/09/2009, 02h00
  2. Réponses: 10
    Dernier message: 14/04/2009, 18h18
  3. Les Triggers : Delete en cascade ...
    Par foolib dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 16/01/2009, 14h27
  4. [Firebird] Désactiver des Triggers dans une procédure
    Par Cazaux-Moutou-Philippe dans le forum Bases de données
    Réponses: 5
    Dernier message: 28/10/2007, 10h07
  5. [Triggers] Deletes en cascade récalcitrants
    Par Coplan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/07/2005, 10h19

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