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 :

Utilisation séquence auto incrément


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Par défaut Utilisation séquence auto incrément
    Salut,

    j'ai créé une séquence AUTO-INCREMENT_ID dans ma BDD à partir de Oracle Sql Developer qui va me permettre de faire des auto incréments des Id de mes tables avec cette structure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE SEQUENCE AUTO_INCREMENT_ID
      START WITH 1 
      MAXVALUE 999999 
      MINVALUE 1 
      NOCYCLE 
      NOCACHE 
      NOORDER;
    En suite j'ai un block de données qui est lié à la table PROFIL qui a pour nom PROFIL, que j'aimerai faire un enregistrement dessus.
    A partir d'un Trigger WHEN_BUTTON_PRESSED, j'ai mis le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BEGIN 
      GO_BLOCK('profil');
      INSERT INTO profil (id,intitule, application_id) VALUES (AUTO_INCREMENT_ID.NextVal, :PROFIL.intitule, :PROFIL.application_id);
    END;
    et quand j'execute le bouton, rien ne se passe même pas un message d'erreur et la BDD est aussi vide.
    J'aimerai savoir qu'est-ce qui n'a pas marché. Merci d'avance

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

    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
    Billets dans le blog
    4
    Par défaut
    Ne pas confondre le SQL qui s'exécute dans la base et celui fait pour Forms

    L'instruction Go_block est une instruction Forms
    INSERT est une instruction SQL

    Concrètement :
    GO_BLOCK('profil'); => Dans l'appli forms, le curseur va dans le block PROFIL
    INSERT INTO profil (id,intitule, application_id) VALUES (AUTO_INCREMENT_ID.NextVal, ROFIL.intitule, ROFIL.application_id); => Tu insères en base dans la table Profil des valeurs (mais sans commiter)

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Par défaut
    Citation Envoyé par McM Voir le message
    Concrètement :
    GO_BLOCK('profil'); => Dans l'appli forms, le curseur va dans le block PROFIL
    INSERT INTO profil (id,intitule, application_id) VALUES (AUTO_INCREMENT_ID.NextVal, ROFIL.intitule, ROFIL.application_id); => Tu insères en base dans la table Profil des valeurs (mais sans commiter)
    quand je fait un COMMIT, l'enregistrement s'effectue. Mais comme Id est auto incrément alors je l'ai rendu invisible dans le Block, et là j'ai les messages d'erreur: FRM-40202: Le champ doit être renségné. et FRM-40222: Echec de validation sur élément désactivé 'PROFIL.ID'.
    Comment faire pour caché le champ ID à l'utilisateur et enregistrer avec le bouton sans erreur?
    Merci.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Consultant ERP
    Inscrit en
    Février 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2018
    Messages : 7
    Par défaut
    Salut,
    ça fait longtemps que je n'ai plus fait de Forms mais je crois qu'il faut que tu alimentes tes champs dans le panneau, tu ne dois pas faire d'INSERT sql directement, c'est l'enregistrement au niveau du panneau qui ira insérer tes lignes en table.

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 125
    Par défaut
    Je ne comprends pas quand tu me dis d'alimenter mes champs dans le panneau. De quel panneau il s'agit STP?

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Consultant ERP
    Inscrit en
    Février 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2018
    Messages : 7
    Par défaut
    Du panneau Forms sur lequel tu travailles !
    Chaque élément du panneau est susceptible de recevoir une valeur.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/08/2014, 14h44
  2. Séquences pour auto incrémentation?
    Par Yassine2006 dans le forum Oracle
    Réponses: 3
    Dernier message: 15/03/2007, 07h58
  3. Dernière clé auto incrémenté ?
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 15/11/2003, 10h41
  4. [CODE] auto incrémentation ?
    Par Roi dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/09/2003, 15h09
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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