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

Forms Oracle Discussion :

When-button-pressed insert, update


Sujet :

Forms Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 53
    Points
    53
    Par défaut When-button-pressed insert, update
    Bonjour à tous,

    mon souci est que je n'arrive pas à faire d'action du type insert ou update avec un boutton.
    J'utilise le smarttrigger when-button-pressed j'y met ma requête sql concernant l'update ou l'insert mais le soucis c'est que quand je clique sur le boutton j'ai l'impression qu'il essaye d'inserer ou d'update les bloc de ma presentation

    e sujet étant la gestion d'un comité d'entreprise qui permet l'inscriptions des enfants d'un salarie à des centres de vacances;

    Explications:

    j'ai 5 bloque dans ma présentation , ces bloques faisant référence à 5 tables de ma bases

    SALARIE
    ENFANT
    ANNEE
    MOI
    LIEU

    Grâce au LOV je choisis un salarie, puis un de ces enfants, ensuite je choisit un mois et une année puis un lieu. jusque l'a pas de soucis tous ce passe bien

    ensuite j'ai un boutton don le trigger when-button-pressed contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO CHOIX (id_choix,nom_mois,id_lieu,id_validation) VALUES (choix_seq.NEXTVAL,:MOIS.nom_mois,:LIEU.id_lieu,1);
    INSERT INTO FAIRE_CHOIX (num_annee, id_enfant, id_choix) VALUES (:ANNEE.num_annee,:ENFANT.id_enfant,choix_seq.CURRVAL);
    commit;
    et l'erreur qui me sort est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FRM-40508 : Insertion impossible
    INSERT INTO SALARIE(ID_SALARIE,NOM_SALARIE,PRENOM_SALARIE) VALUES (:1,:2,:3) 
    ORA-00001: violation de contrainte unique (YOANN.GREGOIRE.PK_SALARIE)
    forcement violation de contrainte unique, vu qu'il essaye d'inserer un salarie, que j'ai sélectionné dans la base.
    Bon comme j'avais pas de insert into salarie dans mon when-button-pressed , je me suis dis : ça vient peut etre d'un trigger. puis au final non, ça vient d'aucun trigger.


    Et ça me fait l'a même chose sur un update, j'ai une vue, j'essaie d'update une table de ma base et il me sort une erreur car il essaye d'inserer ma vue


    Je comprend pas vraiment d'ou ça peut venir

    Merci bien

    Yann

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Pourquoi gérer les ordres d'insertion mise à jour et suppression à la main alors que Forms le fait si bien tout seul

    Faites simplement COMMIT et Forms se débrouillera avec la base.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    ben comment il va savoir ou j'ai besoin de creer des tuples, sachant que les tables ou j'insert, ne sont pas présent dans le formulaire

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO SALARIE(ID_SALARIE,NOM_SALARIE,PRENOM_SALARIE) VALUES (:1,:2,:3)
    ça, ça vient forcément d'un bloc basé.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    Le soucis c'est qu'on a eu qu'un petit tutoriel sur forms avant le projet, donc effectivement je comprend pas énormement son fonctionnement.

    En ce qui concerne le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO SALARIE(ID_SALARIE,NOM_SALARIE,PRENOM_SALARIE) VALUES (:1,:2,:3)
    C'est généré tout seul lors ce que j'appui sur le boutton pour faire mes insert, je n'ai jamais écrit cette ligne.

    Sinon quel moye y'a-til d'éxécuté une requête sql avec un when-pressed-button?

  6. #6
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Je sais bien que vous n'avez pas écrit cette ligne. Cette requête est générée automatiquement par Forms car vous avez un bloc basé sur la table SALARIE.

    Ce que je veux dire, c'est que lorsque vous utilisez des blocs basés (donc sur une table) Forms gère automatiquement l'interaction avec la base et donc les ordres DELETE, UPDATE et INSERT. Vous n'avez donc pas à le faire "à la main"

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    Oui effectivement SALARIE et ENFANT sont liés.
    Le soucis c'est que je veux interagir avec la base sur des blocs ne faisant pas partit de mon formulaire.

  8. #8
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par Darksnakes Voir le message
    Le soucis c'est que je veux interagir avec la base sur des blocs ne faisant pas partit de mon formulaire.
    Pouvez-vous expliquer ? d'où proviennent ces blocs s'ils ne sont pas dans le formulaire

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    en fait mon formulaire sert a récupérer des informations diverses.
    Ces info forment ensuite un tuples que j'enregistre dans une table qui n'est pas présent dans mon formulaire.

    Donc en fait si j'ai besoin de faire des opérations sur une table de ma base, il faut quelle soit présente dans mon forms?

  10. #10
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    non, ce n'est pas non plus ce que je voulais dire...

    En tous cas, le message d'erreur que vous obtenez sur le bloc SALARIE prouve que vous essayez d'insérer un doublon (donc un enregistrement dont l'une des clés uniques existe déjà en base), donc voyrz pourquoi. Peut-être cela vient-il d'un INSERT que vous faites à la main sur cette même table dans votre formulaire.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 53
    Points
    53
    Par défaut
    Enfait j'ai mon bloc salarie,
    je choisit un salarie
    puis le reste

    pusi j'ai mon boutton qui doit mettre a jour ma base, et la il essaye d'inserer dans la base le salarie que j'ai choisit alors que c'est qu'un bloc de consultations ><

  12. #12
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    si c'est un bloc de consultaion, mettre INSERT, UPDATE et DELETE a NON dans la fenêtre de propriétés de ce bloc.

Discussions similaires

  1. Trigger When-Button-Pressed ne fonctionne pas
    Par Finol dans le forum Forms
    Réponses: 5
    Dernier message: 20/12/2012, 15h18
  2. FRM-40735 (When button pressed) ORA-01403
    Par miss_poopoucy dans le forum Forms
    Réponses: 1
    Dernier message: 17/09/2009, 19h05
  3. Réponses: 4
    Dernier message: 07/08/2008, 09h34
  4. Réponses: 2
    Dernier message: 04/06/2007, 13h53

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