|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 252 ![]() |
Bonjour
je suis sur postgre 8.1.8 J'ai besoin de faire un programme Java qui ecoute les modifications qui surviennent sur ma base tout ça peut se faire mais c'est tres long d'une part parce aue je dois creer une JTable qui se rafraichit periodiquement et qui affiche le contenu de ma bdd ensuite j'ai un listener sur cette JTable j'ai pas trouvé mieux jusqu'a present parce que les LISTEN / NOTIFY ne peuvent pas prendre d'arguments donc c'est pour ça que je passe par la JTable sinon en langage C, http://www.postgresql.org/docs/8.1/i...IBPQ-EXAMPLE-2 il y a beaucoup plus de possibilités, mais comme je dois garder mon programme Java pour le reste du programme est ce que vous savez comment creer des listeners entre un programme C et java, surement cette question la n'a pas sa place ici La derniere solution qui est sans doute la meilleure c'est de faire un trigger en C pour me notifier des evenements mais je m'y connais pas trop en bdd merci bcp de l'aide |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
La seule solution c'est de faire un trigger sur chaque événement DML (insert, update, delete) de chaque table de ta base, mais bonjour la lourdeur et la complexité ...
Ou alors au pire tracer toutes les requêtes et parser en permanence le fichier de trace mais ça risque de plomber les performances de tout tracer ...
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne. La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi ! Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/ |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 252 ![]() |
ma base contient des données et tres important leurs dates d'insertion
et mon programme Java doit etre averti si il y a un INSERT en plus de ça, il y a une fonction du programme Java qui doit simuler ce qu'il s'est passé entre t1 et t2, pour cela, il faudrait que je fasse un TRIGGER en C qui reagissent à SELECT ... WHERE time>t1 and time<t2 et qui renvoit toutes les secondes les lignes de ce SELECT Est ce que c'est possible à faire |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
Trigger sur SELECT ce n'est pas possible en Postgresql, tu peux juste faire sur les événements INSERT,UPDATE,DELETE
Après à toi de vori si tu veux développer ça en C ou autre, mais ça n'est plus du ressort de la base
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne. La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi ! Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/ |
|
|
00
|
|
|
#5 |
|
Inactif
![]() Inscription : novembre 2004 Messages : 247 ![]() |
La seule solution c'est de faire un trigger sur chaque événement DML
OUI et NON ... Pour rectifier l'unicité mais cela reste une fausse solution Vous pouvez faire des sous tables heritières (INHERITS) avec un champ chronologique en plus, et les affecter en saisie primaire Vous determinez un espace temporel pour les interpreter (là vous pouvez faire un RULE pour automatiser la tâche), ensuite vous les supprimer, et vous les recreer a votre guise. Pour les fonctions UPDATE ou similaires il est imperatif de faire le trigger ou le rule car la table heritière créée n'a pas les données natives de la table mère. Aussi avec cette manip vous n'avez pas les utilisateurs auteurs des requètes... Un trace sans les identifiants utilisateurs ça ne vaut pas un clou.... Regardez plutôt vers les fichiers de trace (Apache si vous etes en intranet) ou ceux de PG http://kryskool.org/doc/pg-8.1.2/run...-LOGGING-WHERE cela me semble plus serieux... Cordialement. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com