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 :

[Forms6i] FRM-40737 et Create_timer


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Par défaut [Forms6i] FRM-40737 et Create_timer
    Bonjour,

    Voila j'ai un petit soucis : au moment ou je veux valider le contenu de ma forme je fais qq validations/verifications sur ce qui a été fait par l'utilisateur avant de lancer le mecanisme d'insertion et de commit. La procedure de validation est appelée dans PRE-COMMIT.
    Cette forme etant composée de plusieurs blocs je passe de l'un a l'autre lors de ma validation grace a GO_BLOCK()
    Lors de l'execution, j'obtiens un FRM-40737 sur le 1er de ces GO_BLOCK : il est en effet interdit d'utiliser une fonction restreinte dans un trigger pre- ou post-
    Pour contourner le pb j'ai suivi les conseils de metalink : remplacer mon code de verification dans le trigger PRE-COMMIT par des create_timer et reporter mes verifications dans le trigger WHEN-TIMER-EXPIRED (là les GO_BLOCK sont autorises).

    Le probleme, c'est que contrairement à ce que je lis dans la litterature Oracle, le trigger WHEN-TIMER-EXPIRED n'est pas appele tout de suite apres la commande create_timer. Il est est meme appele suffisemment tard pour qu'il soit appele apres que le mecanisme d'insertion ait eu lieu. J'insere donc sans verifier mes données...
    Qqun a déjà rencontré ce probleme ?

    PS : voici la syntaxe que j'utilise pour la commande create_timer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V_TIMER_ID := CREATE_TIMER('id_valid', 1,no_repeat);
    Je crée donc un délai de 1ms et qui n'est pas répété.

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Pourquoi ne pas mettre tes contrôles dans le KEY-COMMIT (où les go_block sont autorisés) juste avant de faire commit_form ? Cela me semble moins usine à gaz que le système des timer

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Par défaut
    Tout simplement parce que je suis un p'tit débutant et que ma connaissance de l'enchainement des triggers n'est pas parfaite !
    Merci en tout cas, ca solutionne mon pb !

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

Discussions similaires

  1. [forms6i]Erreur FRM-040508?
    Par sali dans le forum Oracle
    Réponses: 1
    Dernier message: 15/02/2006, 07h21
  2. [Forms6i] FRM-40102 dans bloc multiligne
    Par lafouine dans le forum Forms
    Réponses: 3
    Dernier message: 16/08/2005, 17h59
  3. Réponses: 4
    Dernier message: 30/09/2004, 13h55
  4. [Forms6i]commit_form
    Par asnf dans le forum Forms
    Réponses: 2
    Dernier message: 02/01/2004, 17h42
  5. [Forms6i]touche enfoncée
    Par asnf dans le forum Forms
    Réponses: 6
    Dernier message: 02/01/2004, 16h40

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