1. #1
    Membre à l'essai
    Inscrit en
    juillet 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : juillet 2009
    Messages : 24
    Points : 21
    Points
    21

    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 éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    juillet 2003
    Messages
    4 030
    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 030
    Points : 6 342
    Points
    6 342
    Billets dans le blog
    3

    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)
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB

  3. #3
    Membre à l'essai
    Inscrit en
    juillet 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : juillet 2009
    Messages : 24
    Points : 21
    Points
    21

    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.

Discussions similaires

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

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