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

SQL Firebird Discussion :

desactiver un trigger


Sujet :

SQL Firebird

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut desactiver un trigger
    bonjour à tous
    j'ai un manque cruciale d'information:
    est-il possible de désactiver un trigger a partir d'une appli delphi ? ou partir d'une ps ?
    si cela est possible, qu'elle est l'IBX qui est approprier pour le faire.
    merci à tous

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Oui c'est possible mais cette opération est à réserver pour les traitements de maintenance de la base et non pour une utilisation courante.
    Car a chaque désactivation celà décrémente ne nombre de modification autoriser sur la table (255 après sa création ou après une restauration de celle ci). Une fois le compteur à 0 plus aucunne modification de la structure de la table n'est possible. Il faut faire un backup de la base suivi d'une restauration pour réinitialiser ces compteurs.

    La commande est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SET TERM ^ ;
     
    ALTER TRIGGER CANDIDATS_IB_BI
    INACTIVE BEFORE INSERT POSITION 0
    AS
    BEGIN
      IF (NEW.ID IS NULL) THEN
        NEW.ID = GEN_ID(GEN_CANDIDATS_IB_ID,1);
    END
    ^
     
    SET TERM ; ^
    Et pour la réactiver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SET TERM ^ ;
     
    ALTER TRIGGER CANDIDATS_IB_BI
    ACTIVE BEFORE INSERT POSITION 0
    AS
    BEGIN
      IF (NEW.ID IS NULL) THEN
        NEW.ID = GEN_ID(GEN_CANDIDATS_IB_ID,1);
    END
     
    ^
     
    SET TERM ; ^

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    en faite voici mon pb je veux remplir une table avec des données de deux types et sur cette table j'ai un trigger.
    pour une partie de ces données le trigger doit réagir pour l'autre le trigger doit rester inactif es ce que vous n'avez pas une idée,
    je suis vraiment coincé
    merci d'avance

  4. #4
    Membre actif Avatar de TMuet
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2003
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 225
    Points : 288
    Points
    288
    Par défaut
    • Soit tu peux déclencher le trigger en fonction de la valeur d'un champ de la table : 0 pour les lignes qui ne devront pas le déclencher, 1 pour celles qui devront. Et hop 8)

    • Soit manisfestement, le trigger n'est pas adapté.
    Un trigger est fait pour réagier à certaines valeurs et/ou certaines modifications. S'il ne doit pas réagir tout le temps et qu'aucun champ de la ligne ne peut le prédire alors le trigger n'est probablement pas la meilleure solution.
    Vois plutôt pour une PS à lancer "lorsqu'il le faudra"

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    merci je pense que prendrai le prémière soluce
    merci

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

Discussions similaires

  1. Activer/desactiver plusieur trigger à la fois
    Par aek_gh dans le forum SQL
    Réponses: 0
    Dernier message: 05/08/2009, 12h58
  2. Réponses: 4
    Dernier message: 22/06/2006, 11h01
  3. DESACTIVER/ACTIVER TRIGGER
    Par cyril dans le forum Oracle
    Réponses: 4
    Dernier message: 08/11/2005, 13h33
  4. desactiver la barre des taches
    Par naili dans le forum C++Builder
    Réponses: 7
    Dernier message: 02/09/2002, 17h57
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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