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 6] Sequence + Forms


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2004
    Messages : 118
    Par défaut [Forms 6] Sequence + Forms
    Bonjour à tous

    Voila je voudrais utiliser une séquence pour de mes champs dans une forms.
    J'ai lu dans l'aide que je devais mettre comme valeur pour Initial Value
    :sequence.ma_sequence.nextval de mon champ.

    Mais lorsque je lance ma form, il me donne une erreur FRM-40911. Ma sequence es bien crée pas de souci. Si j'appelle le nextval en SQL ça fonctionne

    Je suis en Forms 6i version détaillée : 6.0.8.19.2

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Salut,

    C'est pas clair, dans quel trigger tu incrémentes ta séquence?

    Peux-tu poster ton code ?

    Est ce que ton block s'appelle SEQUENCE?

    Est ce que t'as créé un synonyme pour ta séquence?

    Explication :

    Si dans mon block BLOCK1, j'ai un champ CHAMP1 qui s'incrémente par un séquence qui s'appelle ma_sequence, il y a deux solutions possibles :

    1 solution :Mettre dans mon trigger pre_insert de mon block BLOCK1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    BEGIN 
    SELECT MA_SEQUENCE.NEXTVAL
    INTO :BLOCK1.CHAMP1
    FROM DUAL ;
    END ;
    2 solution :Mettre dans mon trigger on_insert de mon block BLOCK1(TU DOIS GÉRER TON INSERT)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN 
    INSERT INTO MA_TABLE(CHAMP1,CHAMP2....) VALUES(MA_SEQUENCE.NEXTVAL,....);
    END ;

  3. #3
    Expert confirmé
    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
    Par défaut
    Au lieu on ON-INSERT, je placerais plutôt dans le PRE-INSERT.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2004
    Messages : 118
    Par défaut
    Bonjour

    Merci de vos réponses.

    J'ai déjà essayé de placer dans le pre-insert le code proposé mais il ne veux pas le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select seq_contrat_essai.nextval
    into :a.idligce
    from dual;
    mais form me donne l'erreur suivante à la compilation du trigger pre-insert :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Error 327 at line 1, column 8
    "SEQ_CONTRAT_ESSAI" is not in SQL scope here
    Il y a bien un synonym public sur ma sequence.

    Je ne comprends pas pourquoi. Ma séquence fonctionne bien en sql ou dans un trigger base sur la table.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2004
    Messages : 118
    Par défaut
    Je suis trop idiot :cfou

    J'avais un problème de définition dans mon synonyme public. Je ne l'avais pas vu.
    Merci de votre aide quand même.

    Désolé encore

  6. #6
    Expert confirmé
    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
    Par défaut
    Il n'en reste pas moins vrai que placer l'interrogation de la séquence dans le trigger PRE-INSERT génèrera moins de "trous", dans la mesure ou cela intervient au moment du commit, alors que la valorisation à l'initialisation de l'item "mange" un numéro même si l'utilisateur ne valide pas l'enregistrement.

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

Discussions similaires

  1. Forms V4.5 --> Forms V10
    Par info_ora dans le forum Forms
    Réponses: 3
    Dernier message: 29/05/2006, 14h34
  2. Réponses: 1
    Dernier message: 28/05/2006, 15h41
  3. [Forms]alerte oracle forms
    Par med_anis_dk dans le forum Forms
    Réponses: 1
    Dernier message: 17/05/2006, 08h18
  4. [Forms]de forms 6i vers forms 9i
    Par chiheb dans le forum Forms
    Réponses: 6
    Dernier message: 02/05/2006, 14h32
  5. [Forms]migration forms 6 vers forms 8
    Par anthonychery dans le forum Oracle
    Réponses: 7
    Dernier message: 17/11/2004, 17h54

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