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

PL/SQL Oracle Discussion :

Gros probleme de suppression


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 56
    Points : 25
    Points
    25
    Par défaut Gros probleme de suppression
    Bonjour à tous, je vous explique mon probleme:
    J'ai 3 tables :
    etudiant (numetud,nom, prenom, datenaiss, civilite, patronyme, numinsee, adresse)
    inscription (numetud, codmod,dainsc,numtd)
    resultat (numetud,codmod,codexam,note)

    Je travail avec l'application Forms 10g et dans mon editeur PL/SQL de mon bouton supprimer, avec comme declencheur "When-button-pressed" j'ai le script suivant:

    Code : 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
     
    Declare 
      alert_id alert;
      choice number;
    Begin
      alert_id := Find_Alert ('ALERT_DELETE');
      choice := Show_Alert (alert_id);
      if choice = ALERT_BUTTON1 then
        begin
          delete from etudiant where numetud = :etudiant.numetud;
          delete from inscription where numetud = :etudiant.numetud;
          delete from resultat where numetud = :etudiant.numetud;
        Clear_record;
    end;
      else null;
     end if;
    end;
    Je souhaiterais que lorsque j'insere une valeur dans le champ numetud que toutes les lignes se référent à ce numetud soient supprimer dans la table etudiant et les autres.
    L'Alerte se declenche correctement, mais la suppression ne se fait pas.
    Quequ'un à t-il une solution ?

    Merci pour votre aide.

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Faudrait le déplacer dans Forms.

    Astuce : Pour tracer où tu passes (être sur que les ordres delete sont bien exécutés), tu peux rajouter un message (pour débugger). Attention le 2ème message est important, car il permet d'afficher la boite de dialogue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    IF choice = ALERT_BUTTON1 then
        begin
          message('trace 1'); message(' ');
     
          DELETE FROM etudiant WHERE numetud = :etudiant.numetud;
          DELETE FROM inscription WHERE numetud = :etudiant.numetud;
          DELETE FROM resultat WHERE numetud = :etudiant.numetud;
        Clear_record;
    end;
    Pour finir, il n'y a pas de COMMIT.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 56
    Points : 25
    Points
    25
    Par défaut
    Merci McM pour ton aide.
    Qu'est ce que tu veux dire par "le déplacer dans forms" ?
    Les boites de dialogues s'affichent bien.
    J'ai l'erreur suivante lorsque j'execute l'application forms :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FRM-40735: Le déclencheur WHEN-BUTTON-PRESSED a détecté une exception ORA-02292 non traité.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 220
    Points
    220
    Par défaut
    ORA-02292: integrity constraint (string.string) violated - child record found
    Cause: attempted to delete a parent key value that had a foreign key dependency.
    Action: delete dependencies first then parent or disable constraint.
    Il y a une autre table où faire un DELETE ou bien les DELETE ne sont pas fait dans l'ordre des dépendances de clés étrangères.

    A vue de nez je dirais déjà que je supprimerais dans etudiant en dernier

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 56
    Points : 25
    Points
    25
    Par défaut
    Merci rbaraer tu es un as ! sa marche. Il suffisait de mettre delete etudiant en dernier.

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

Discussions similaires

  1. [VBA] Problem de suppression de composant
    Par jesus144 dans le forum IHM
    Réponses: 9
    Dernier message: 26/04/2006, 10h03
  2. Petite aide pour gros problème : libstdc++
    Par Info-Rital dans le forum Linux
    Réponses: 5
    Dernier message: 30/08/2004, 19h17
  3. gros problemes de texturages...
    Par aguion dans le forum OpenGL
    Réponses: 5
    Dernier message: 23/06/2004, 11h02
  4. Gros problème avec JB8 et appli J2EE
    Par patbier dans le forum JBuilder
    Réponses: 10
    Dernier message: 07/03/2003, 10h52

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