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 :

[Forms10g] Comment rafraîchir les données affichées sur ma forme


Sujet :

Forms Oracle

  1. #1
    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
    Points : 1 197
    Points
    1 197
    Par défaut [Forms10g] Comment rafraîchir les données affichées sur ma forme
    Salut,


    Dans des applications à temps réels comment faire pour rafraîchir les données
    de ma forme mais sans utiliser le timer ?

    Merci d'avance.

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

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Sans timer, ça va être dur.
    Tu veux raffraichir quand ?

    Si c'est lorsque l'utilisateur navigue, tu peux utiliser le trigger when_new_item_instance
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    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
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    Je veux que mon ecran contient les données réels de ma table

    TU veux dire utiliser get_item_property

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    get_item_property('bloc.nom_col',DATABASE_VALUE);
    Je pense c'est mieux d'utiliser le when_new_record_instance.

    Mais est ce que cette solution est performante?

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Je suis HYPER concerné par ce genre de problématique.

    L'alternative que j'ai mise en place consiste à invoquer la built-in POST dans le trigger WHEN-NEW-RECORD-INSTANCE (car il s'agit de bloc multi-lignes mais when-new-item-instance est peut être plus approprié dans ton cas).

    A partir de là, tu n'as plus besoin de timer.
    Tu peux par exemple enchaîner sur un clear_block(no_validate) suivi d'un execute_query.

    Remarques :
    - tu peux remplacer POST par COMMIT
    - ton écran doit être organisé impeccablement en particulier concernant le status de tes records, en tout cas, c'est LE point qui m'a posé le plus de contraintes.
    - l'invocation de post ou commit va déclenché les triggers de validation (donc when-validate-record, when-validate-item, etc.) -> Cf. le niveau de validation défini dans ton écran
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    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
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    Merci pour vos suggestions.

    Mais le post il valide le données au niveau de la forme mais il ne rafraichit
    pas mon ecran ( c'est a dire s'il y a des nouveaux enregistrements inserés dans ma table avec le post je vais pas les voir sur mon ecran ).

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par salim11
    s'il y a des nouveaux enregistrements inserés dans ma table avec le post je vais pas les voir sur mon ecran
    Ah si !
    POST effectue une validation des modifications (insertion, suppression, modifications de lignes) en base comme le ferait commit sauf que celle-ci peut être annulée via un appel à CLEAR_FORM (et uniquement clear_form par opposition à clear_block par exemple).

    Par contre, tu as raison quand tu dis que l'appel à POST ne suffit pas.
    C'est pour ça que je te proposais d'enchaîner un clear_BLOCK et EXECUTE_QUERY...
    mais surtout pas d'appel à CLEAR_FORM

    Dernière remarque : post est une procédure restreinte mais ça tu le sais certainement déjà.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  7. #7
    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
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    POST effectue une validation des modifications (insertion, suppression,
     modifications de lignes) en base comme le ferait commit sauf que celle-ci 
    peut être annulée via un appel à CLEAR_FORM
    Je comprends pas une chose , j'ai créé une forme et dans le when_new_record_instance je fais le post, quand je modifie un champs ou je crée un nouveau et apres je me positionne sur un autre record il commit au niveau de la forme mais je voix pas les modification au niveau de table ( la base de données)


    Merci Magnus.

  8. #8
    Expert éminent sénior
    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
    Points : 11 862
    Points
    11 862
    Par défaut
    Pour ce qui est du raffraîchissement commandé depuis un évènement extérieur, j'ai développé la solution suivante:
    http://forms.pjc.bean.over-blog.com/...e-4168506.html

    Un message peut ensuite être envoyé à Forms depuis la base, sur le déclanchement d'un trigger, par exemple.

    Sinon, le déclenchement depuis Forms ne peut pas passer par autre chose qu'un timer. Mais franchement, un timer qui se déclenche une fois par seconde ou toutes les 2 secondes ne provoquera aucun encombrement réseau.
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par salim11
    quand je modifie un champs ou je crée un nouveau et apres je me positionne sur un autre record il commit au niveau de la forme mais je voix pas les modification au niveau de table ( la base de données)
    Normal, POST ne valide les modifications que pour la SESSION en cours.
    Donc si vous faîtes une requête en parallèle sous SQLPlus par exemple alors vous ne verrez pas les modifications tant que vous n'aurez pas effectué de COMMIT dans l'écran.

    Cependant, vous n'avez pas d'invoquer COMMIT dans l'écran pour vider votre bloc et le recharger de manière à travailler en temps réel : vous êtes toujours dans la même session que celle qui a posté les modifications.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  10. #10
    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
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    C'est trés clair.

    Merci magnus.

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 23/12/2009, 10h56
  2. comment récupérer les données dans contact sur une feuille excel?
    Par Granfred dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/01/2009, 15h02
  3. Comment récupéré les données sur plusieurs fenêtres ?
    Par bon4000 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 17/09/2007, 17h58
  4. Comment capturer les données sur une liaison série RS232
    Par jef Orome dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 02/04/2007, 18h14

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