|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
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 |
|
|
00
|
|
|
#3 | ||
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Salut,
Je veux que mon ecran contient les données réels de ma table TU veux dire utiliser get_item_property Code :
Mais est ce que cette solution est performante? |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
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 |
|
|
00
|
|
|
#5 |
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
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 ). |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Citation:
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 |
|
|
|
00
|
|
|
#7 | ||
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Salut,
Code :
Merci Magnus. |
||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 533 ![]() |
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 |
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Citation:
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 |
|
|
|
00
|
|
|
#10 |
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Salut,
C'est trés clair. Merci magnus. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com