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.
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.
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
Salut,
Je veux que mon ecran contient les données réels de ma table
TU veux dire utiliser get_item_property
Je pense c'est mieux d'utiliser le when_new_record_instance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 get_item_property('bloc.nom_col',DATABASE_VALUE);
Mais est ce que cette solution est performante?
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
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 ).
Ah si !Envoyé par salim11
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à.
Salut,
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)
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
Merci Magnus.
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.
Normal, POST ne valide les modifications que pour la SESSION en cours.Envoyé par salim11
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.
Salut,
C'est trés clair.
Merci magnus.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager