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

Firebird Discussion :

détecter les changements automatiquement


Sujet :

Firebird

  1. #1
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut détecter les changements automatiquement
    Bonsoir,

    y'a t'il un moyen de monitorer une table firebird en temps réel ?
    d'après ce que je sais et de mémoire il y'a les evenements FB avec POST_Event etc ...
    mais il faut faire un commit a partir de son application pour pouvoir avoir cette notification .

    donc existe t'il un mécanisme/technique qui permet de détecter les changements sur une table ou bien d'être en écoute sur les événements FB et intercepter les notifications automatiquement ?


    Merci et bonne fin de journée

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 077
    Points : 41 024
    Points
    41 024
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Monitorer une table et gérer des évènements sont pour moi deux choses différentes et donc je ne comprends certainement pas bien la question.
    Pour monitorer une table (c'est à dire enregistrer les changements qui peuvent s'y effectuer) j'utilise des triggers, généralement After Insert OR Update voire un Before DELETE.
    Un event lorsque j'en utilise est de la même manière générer par un trigger (ce n'est pas mes programmes qui envoie des Events à la Base de Données mais bien Firebird qui m'en envoi) du coup je ne comprend pas bien ce que vient faire cette remarque :
    Citation Envoyé par Issam
    mais il faut faire un commit a partir de son application pour pouvoir avoir cette notification .
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    on va prendre un cas concret :
    je voudrais lors d'une insertion dans une table donnée notifier les applications connectées a la base de données de cet ajout .

    Si on utilise les événements FB, on créer un trigger afterinsert, et dedans on fait appel a POST_EVENT

    le soucis que ce n'est pas du temps réel, l'application cliente doit quand même faire un commit pour qu'elle puisse être notifiée de cet événement ,
    en tout les cas c'est ce que j'ai pu comprendre ... et de mémoire toujours


    donc je me demande si on pouvait être notifié des insertion sur les tables via le mécanisme des post_event , ou autre mais de façon automatique

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 077
    Points : 41 024
    Points
    41 024
    Billets dans le blog
    62
    Par défaut
    Si on utilise les événements FB, on créer un trigger afterinsert, et dedans on fait appel a POST_EVENT
    le soucis que ce n'est pas du temps réel, l'application cliente doit quand même faire un commit pour qu'elle puisse être notifiée de cet événement ,
    évidemment dans ce cas de figure il faut bien qu'il y ait un commit , s'il aucune insertion n'est faite il n'y a normalement aucun évènement a notifier puisqu'il y a eu abandon cela me semble logique ?

    maintenant si l'EVENT est posté via un trigger BEFORE INSERT que se passera t-il d'après vous?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    évidemment dans ce cas de figure il faut bien qu'il y ait un commit , s'il aucune insertion n'est faite il n'y a normalement aucun évènement a notifier puisqu'il y a eu abandon cela me semble logique ?

    maintenant si l'EVENT est posté via un trigger BEFORE INSERT que se passera t-il d'après vous?
    Before ou after n'est pas le problème . admettons que j'ai 2 applications tournant sur 2 ordinateurs différents sur le réseau.
    mon but et que si l'application sur le poste A fait une insertion/commit dans une table, l'application tournant sur le poste B soit notifiée automatiquement et en temps réel sans besoin de faire un commit a son tour dans le cas des POST_EVENT par exemple

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 077
    Points : 41 024
    Points
    41 024
    Billets dans le blog
    62
    Par défaut
    Le poste B n'a pas besoin de faire de COMMIT et sera notifié "en temps réel" (prévoir quand même un petit délai).

    j'ai fait une ébauche de traduction d'article trouvés dans un blog à propos des Events ici

    On n'a pas là affaire à un problème Firebird, mais à un problème de "lecteur" d'évènements, tout dépend des composants utilisés (ZIbEvents, IBEvents, UIBEvents , FdEventAlerter) et en cas d'utilisation de certains logiciels/configurations du ou des ports utilisés
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    ah ok je ne savais pas !

    j'ai fais il y'a quelques années une application delphi/Firebird, mais j'ai du faire justement ce commit/refresh pour pouvoir avoir ces notification


    là je suis sous .net , c'est bien de souligner que c'est un problème de lecteur/configuration

    en tout les cas Merci, j'apprécie vraiment

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

Discussions similaires

  1. Appliquer les changement d'un Dropdown list automatiquent
    Par Innovawebdesign dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 24/06/2013, 05h27
  2. Réponses: 7
    Dernier message: 27/10/2011, 17h27
  3. Détecter les changement de Tab
    Par alen dans le forum MFC
    Réponses: 4
    Dernier message: 26/11/2008, 15h02
  4. Détecter les changements dans un fichier qui alimente une table
    Par yacinechaouche dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/06/2008, 17h56
  5. Détecter les URLs automatiquement
    Par Keyan dans le forum 4D
    Réponses: 3
    Dernier message: 26/09/2007, 16h53

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