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 :

[Firebird] Désactiver des Triggers dans une procédure


Sujet :

Bases de données Delphi

  1. #1
    Membre extrêmement actif Avatar de Cazaux-Moutou-Philippe
    Inscrit en
    Mai 2005
    Messages
    674
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Mai 2005
    Messages : 674
    Points : 171
    Points
    171
    Par défaut [Firebird] Désactiver des Triggers dans une procédure
    Bonjour

    dans firebird 2.xx

    j ai une procedure stockee, qui purge des tables
    mais ces tables ont des triggers et donc c'est tres long

    comment faire en début de procedure pour desactiver ces triggers et les ractiver en fin de la procedure

    merci
    Philippe Cazaux-Moutou
    C#
    Delphi
    Windev

    Guadeloupe

    www.ancestrologie.net/fr

  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

    Comme ceci avec un execute statement:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      EXECUTE STATEMENT 'ALTER TRIGGER TON_TRIGGER INACTIVE';

    @+ Claudius

  3. #3
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      EXECUTE STATEMENT 'ALTER TRIGGER TON_TRIGGER INACTIVE';
    EXECUTE STATEMENT??? sa sert à quoi exactement? executé des requetes dynamiques?
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  4. #4
    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
    Citation Envoyé par edam Voir le message
    EXECUTE STATEMENT??? sa sert à quoi exactement? executé des requetes dynamiques?
    Oui c'est ça ! dans tes PS tu peux construire ton instruction SQL dynamiquement en fonction de tes paramètres en entrée et/ou variables locales.

    Voici une procédure permettant de recalculer la selectivité de tous les index
    Code proposé par Philippe Makowski sur son blog.

    Code PSQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    SET TERM ^; 
    CREATE PROCEDURE SP_CALCSELECTIVITY 
     AS 
     DECLARE VARIABLE IDX VARCHAR(50); 
     DECLARE VARIABLE STMT VARCHAR(75); 
     BEGIN 
      FOR 
      SELECT RDB$INDEX_NAME 
      FROM RDB$INDICES 
      INTO :IDX 
      DO 
      BEGIN 
      STMT = 'SET STATISTICS INDEX ' || :IDX; 
      EXECUTE STATEMENT :STMT; 
      END 
     END 
     ^ 
    SET TERM ;^

    @+ Claudius

  5. #5
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut Juste une réserve
    Les modifications apportées à la structure de la base de données sont enregistrées dans les tables systèmes et leur nombre est limité à 256 fois alors n'oublie pas de faire un backup/restaure avant d'atteindre cette limite.
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

  6. #6
    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
    Citation Envoyé par JustMe Voir le message
    Les modifications apportées à la structure de la base de données sont enregistrées dans les tables systèmes et leur nombre est limité à 256 fois alors n'oublie pas de faire un backup/restaure avant d'atteindre cette limite.
    +1

Discussions similaires

  1. déclaration des variables dans une procédure ou fonction
    Par guefrachi dans le forum Débuter
    Réponses: 6
    Dernier message: 23/07/2010, 13h27
  2. [AC-2003] Désactiver des menus dans une barre d'outils
    Par nefertari dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/01/2010, 15h15
  3. Réponses: 2
    Dernier message: 30/10/2008, 16h29
  4. Réponses: 3
    Dernier message: 21/12/2007, 09h57
  5. Réponses: 1
    Dernier message: 12/12/2007, 13h46

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