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 :

Champ séquenciel automatique


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par défaut Champ séquenciel automatique
    Bonjour à tous,

    j'ai un item que je voudrai séquentiel , j'ai donc fait un trigger dans lequel j'ai initialisé ce champ:

    select s_num_res.nextval into :a_reservation.num_res from dual;

    jusque là pas de soucis, seulement en y réfléchissant mieux ce que je veux c'est la valeur courante car une fois nextval est générée on ne peut plus revenir en arrière.

    En écrivant ce même bout de code avec currval, le champ reste vide !!!

    Quelqu'un aurait-it une idée ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Par défaut
    Pour avoir une valeur courante, il faut d'abord une valeur.
    Donc, d'abord tu fais nextval, et ta session "possede" une valeur. Ensuite tu peux faire currval pour récuperer la valeur que tu possede ou nextval pour en avoir une autre.

    En passant : ce n'est pas une question forms, c'est une question PL/SQL.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par défaut
    Merci pour votre réponse, mais si vous aviez bien lu ma question vous auriez vu que je n'ai essayé le currval qu'apès avoir tenté le nextval , Donc la première initialisation de la séquence est déjà faite.

    Et c'est d'ailleurs pour cette raison que j'ai posé ma question ici, car en effectuant cette même opération avec pl/sql ça marche !

    Mais merci quand même pour la réponse.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Par défaut
    Ben non, quand je lis votre intervention, je lis que vous avez fait un nextval, et qu'ensuite, vous avez modifié votre programme pour faire currval à la place. Comme quoi, c'est pas simple d'être clair.

    si vous avez d'abord fait un nextval puis, aprés un currval, il n'y a aucune raison que cela ne marche pas. [edit] Sauf si, entre temps, vous avez fait un commit. Dans ce cas, je pense que vous avez perdu votre valeur courante de sequence.

    Donnez votre code.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par défaut


    Dans le trigger du bloc de données when-new-block-instance, j'ai écrit :

    select s_num_res.currval into :a_reservation.num_res from dual;

    après l'avoir déjà essayé avec nextval et atteint la valeur 3 de ma séquence.

    Avec nextval il affiche à chaque fois, alors qu'avec currval, rien n'est affiché dans le champ num_res.

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par défaut
    j'ai failli oublié, je n'ai aucun commit dans ce trigger

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Par défaut
    Citation Envoyé par mayya Voir le message


    Dans le trigger du bloc de données when-new-block-instance, j'ai écrit :

    select s_num_res.currval into :a_reservation.num_res from dual;

    après l'avoir déjà essayé avec nextval et atteint la valeur 3 de ma séquence.

    Avec nextval il affiche à chaque fois, alors qu'avec currval, rien n'est affiché dans le champ num_res.
    me semble contradictoire avec :
    Citation Envoyé par mayya Voir le message
    Merci pour votre réponse, mais si vous aviez bien lu ma question vous auriez vu que je n'ai essayé le currval qu'apès avoir tenté le nextval , Donc la première initialisation de la séquence est déjà faite.

    Et c'est d'ailleurs pour cette raison que j'ai posé ma question ici, car en effectuant cette même opération avec pl/sql ça marche !

    Mais merci quand même pour la réponse.
    On tourne en rond :
    begin
    select s_num_res.nextval into :a_reservation.num_res from dual;
    -- initialise une valeur courante dans la sequence et vous l'attribue
    select s_num_res.currval into :a_reservation.num_res from dual;
    -- si vous voullez réutiliser une valeur de séquence qui vous a déja été attribuée
    end;

    si vous commencez votre programme par :
    select s_num_res.currval into :a_reservation.num_res from dual;
    comme vous n'avez pas de valeur attribuée, cela répond au mieux une erreur !

    Vous etes vraiment sûr que
    commit;
    select s_num_res.currval from dual;

    affiche quelque chose ?

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

Discussions similaires

  1. Remplir le champ CC automatiquement sous Outlook
    Par Labore dans le forum VBA Outlook
    Réponses: 19
    Dernier message: 26/05/2020, 12h00
  2. remplir des champs texte automatiquement avec base
    Par rvm31 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/11/2007, 09h55
  3. Créer des champs en automatique dans formulaire
    Par Daniel MOREAU dans le forum VBA Access
    Réponses: 5
    Dernier message: 28/06/2007, 18h14
  4. Mise à jour champ texte automatique
    Par Chlo dans le forum Access
    Réponses: 6
    Dernier message: 25/01/2007, 10h20
  5. champ numérique automatique
    Par clara2005 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 17/05/2006, 17h42

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