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 :

[Forms] : enregistrement en double


Sujet :

Forms Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 44
    Points : 31
    Points
    31
    Par défaut [Forms] : enregistrement en double
    Bonjour,
    Je suis tout nouveau dans ce forum et aussi je fais mes premiers pas avec forms 9ids.
    Mon probleme c'est que j'essai d'inserer un enregistrement dans une table a travers un canevas empilé via un bouton, au debut j'avais integré des contraintes de clé primaire dans ma table et tout le temps je recevais un message de violation de contrainte, quand j'ai enlevé cette contrainte l'enregistrement passe bien mais j'ai le meme enregistrement deux fois inserer.
    Voici mon code qui est assez simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into absence values(:majabs.matricule,:majabs.datejour,:majabs.seance,:majabs.duree);
    go_item('etudiant.matricule');
    commit;
    hide_view('absence');
    ce code se trouve sur un bouton de commande dans le trigger when-button-pressed.
    est ce que quelqu'un peut m'eclairer sur l'erreur que j'ai pu faire et merci pour votre aide.

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Salut,
    J'aimerais savoir si ton block majabs est basé ?
    Si oui,alors c'est normal que ton enr. soit en double
    le premier fait par forms vu que tu insère un enr. dans un block basé donc forms fait un insert dans la base
    et le deuxieme fait par ton INSERT de ton declencheur "WHEN-BUTTON-RESSED"

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Points : 63
    Points
    63
    Par défaut
    Oui, tu ne dois pas faire d'instruction INSERT car Forms s'en charge lui meme lors du commit

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Excellent, c'etait ça mon erreur merci infiniment.
    Mais maintenant l'enregistrement meme s'il est enregistrer dans la barre des taches de l'applet apres une insertion j'ai le message suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FRM-40401:Aucune modification à enregistrer.
    alors que qand je consulte via sqlplus j'ai mon enregistrement creé

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Ce message veux dire que tu as fais un commit ou un commit_form alors qu'aucun de tes champs basé n'as changé.
    Pour que ce message ne s'affiche tu peux soit changer la vairable SYSTEM.MESSAGE_LEVEL avant de faire ton commit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    -- Dans ce cas tu peux mettre la variable à 5,10,15,20,25
    DECLARE
      nMesLevel := :System.Message_Level;
    BEGIN
      :System.Message_Level := 5;
      Commit;
      -- on remet comme c'etait avant
      :System.Message_Level := nMesLevel;
    END;
    ou tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Forms_Ddl('Commit');
    à la place de ton commit; si tu veux valider seulement les ordres Ddl que tu as mis dans ton Forms

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup cela marche tres bien maintenant.

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

Discussions similaires

  1. Enregistrements en double
    Par fafi1 dans le forum SQL
    Réponses: 5
    Dernier message: 13/05/2008, 12h03
  2. requette pour les enregistrements en double
    Par colombe dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/07/2006, 12h28
  3. détecter les enregistrements en double (sur un champ)
    Par Phiss dans le forum Langage SQL
    Réponses: 6
    Dernier message: 06/07/2006, 16h59
  4. Réponses: 8
    Dernier message: 13/04/2006, 15h22
  5. formulaire: enregistrement en double/date now pb
    Par debdev dans le forum Access
    Réponses: 18
    Dernier message: 02/01/2006, 12h54

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