Triggers, etc

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Triggers, etc

par zeus » 22 mai 2007, 18:35

Puisque Nonno a posté en tant qu'invité, je me suis permis de modifier son message à sa place. ;)

Ensuite, en plus de la question que demande Ouckileou, j'aimerais que tu nous donnes le SGBD et les points de frictions :-k

par Cyrano » 22 mai 2007, 18:27

Je ne modère même pas...
Tu es bien bon, je vais être moins tolérant.
--------------------------------------------------------------------------
Modération :
Nonno,
  1. le multipostage est interdit sur le forum.
  2. Tes délais ne nous intéressent pas.
    Nous savons que tu es en difficulté puisque tu demandes de l'aide,
    mais nous sommes tous bénévoles et répondons selon nos disponibilités.
  3. afin d'améliorer la lisibilité de ton message,
    pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

    Elles sont disponibles au-dessus de la zone de saisie de ton message
    lorsque tu postes un nouveau message.

    Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ
Merci de prendre le temps de lire les règlements.
[/color]

Par indulgence malgré tout, je ne verrouille pas le sujet, mais la tentation était grande, veille à respecter les règles, elles ne sont pas insurmontables et tout le monde ici y est soumis, incluant les animateurs de ces forums.

par ouckileou » 22 mai 2007, 17:02

Ni "bonjour",ni "svp", ni "merci", ni même de question ! Et tu te permets de mettre "Urgent" en titre !!

Je ne modère même pas, je pense que tu n'auras aucune réponse. Les membres de ce forum ne sont pas des domestiques.

Triggers, etc

par Nonno » 22 mai 2007, 14:41

Nous gérons des listes chaînées à l aide des deux tables MAILLON et LISTE_CHAINEE. La table MAILLON contient tous les maillons de toutes les listes chaînées. Elle est définie comme suit

Code : Tout sélectionner

CREATE TABLE MAILLON ( ID NUMBER PRIMARY KEY, VALEUR NUMBER, SUIVANT NUMBER REFERENCES MAILLON(ID) );
La table LISTECHAINEE contient les ID des débuts de chaque liste chaînée, elle est définie comme suit :

Code : Tout sélectionner

CREATE TABLE LISTECHAINEE ( DEBUT PRIMARY KEY, FOREIGN KEY (DEBUT) REFERENCES MAILLON (ID) );
Le sous-programme suivant initialise la table LISTECHAINEE est recherchant tous les début de liste dans la table MAILLON.

Code : Tout sélectionner

CREATE OR REPLACE PROCEDURE INITLISTECHAINEE IS CURSOR maillons IS SELECT * FROM MAILLON; m maillons%rowtype; nbPredecesseurs NUMBER; BEGIN FOR m IN maillons LOOP SELECT count(*) INTO nbPredecesseurs FROM MAILLON WHERE suivant = m.ID; IF nbPredecesseurs = 0 THEN INSERT INTO LISTECHAINEE VALUES (m.ID); END IF; END LOOP; END;
  1. Ce sous-programme part du principe que si un élément n a pas de prédécesseur, il est un début de liste chaînée.
  2. Il est possible, sans désactiver de contrainte déclarative, de créer un circuit dans maillon.
  3. Si la table LISTECHAINEE est vide avant l exécution de INITLISTECHAINEE, il est possible que l exception DUP_VAL_ON_INDEX soit levée pendant l exécution de INITLISTECHAINEE.
  4. Il n est pas possible, sans désactiver de contrainte déclarative, de placer dans MAILLON des données telles qu un maillon ait plusieurs prédécesseurs.
  5. INITLISTECHAINEE peut être appelé plusieurs fois de suite sans que cela lève d exception.