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

C# Discussion :

exécution de mon service C# à l'insertion en base d'une données


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut exécution de mon service C# à l'insertion en base d'une données
    Bonjour,

    Je dispose d'un service que je souhaiterai exécuter à chaque fois que j'insère un enregistrement dans une base de données... Est-ce que cela est possible ?

    Si oui auriez vous un lien vers un doc me permettant d'apprendre à le faire car jusqu'à présent je n'ai trouvé que de la gestion d'évènement avec des interfaces liées à l'application...

    Merci de votre aide !

  2. #2
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Par défaut
    Si je comprends bien tu as un service windows, et tu souhaiterais que lorsque une ligne s'insère en base, ce dernier exécute un traitement ?
    Benjamin DEVUYST
    Et comme l'a dit Rick Osborne
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
    http://bdevuyst.developpez.com
    http://blog.developpez.com/bdevuyst
    www.bdevuyst.com

  3. #3
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    oui exactement...

    l'idée est que mon service est un "relais" entre ma base de données et un système externe. Lorsqu'un enregistrement est inséré dans la base (la table et les champs sont identifiés et ne changeront pas), le service doit détecter cette insertion pour le transmettre au service extérieur...

  4. #4
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Par défaut
    Ton moteur de bdd ? sql server ? version ?
    Benjamin DEVUYST
    Et comme l'a dit Rick Osborne
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
    http://bdevuyst.developpez.com
    http://blog.developpez.com/bdevuyst
    www.bdevuyst.com

  5. #5
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Par défaut
    Je m'explique,
    si tu travailles en SQL Server 2005 ou ult, as tu pensé aux assemblies injectés (oui oui, on peut écrire du code .net, utilisé dans Sql server),
    et là peut être qu'il y a une solution !

    Sinon, le seul moyen que je vois, est de flagguer ta table avec un timestamp (ou une datetime),et ton service window scrute à intervalle régulier (paramétrable) les enregistrements modifié, en notant le dernier timestamp lu (histoire de lire que les enregistrements différentiels).

    Car à ma connaissance, on ne peut pas lier (sous forme évènementielle) un service windows à une instance sql server...

    ou alors ya la solution des EAI mais couteuse...
    Benjamin DEVUYST
    Et comme l'a dit Rick Osborne
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
    http://bdevuyst.developpez.com
    http://blog.developpez.com/bdevuyst
    www.bdevuyst.com

  6. #6
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Par défaut
    Exemple d'assembly injecté avec trigger sur table
    http://iroshan29.blogspot.com/2009/0...rver-2005.html

    EDIT : autre exemple http://www.15seconds.com/Issue/041006.htm
    Benjamin DEVUYST
    Et comme l'a dit Rick Osborne
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
    http://bdevuyst.developpez.com
    http://blog.developpez.com/bdevuyst
    www.bdevuyst.com

  7. #7
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Par défaut
    sinon, le seul moyen que je vois, est de flagguer ta table avec un timestamp
    Lorsque je dis ca, j'entends bien sur ajouter un champ de type timestamp, ou datetime avec comme une valeur par défaut insérée par le moteur de bdd lors de l'insertion d'un enregistrement
    (petite précision)

    Exemple champ Datetime => getdate() en valeur par défaut dans la bdd
    Benjamin DEVUYST
    Et comme l'a dit Rick Osborne
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
    http://bdevuyst.developpez.com
    http://blog.developpez.com/bdevuyst
    www.bdevuyst.com

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    euh... ba écoute, à part en demandant à ta base de données de transmettre un évenement à ton service... mais là je vois assez mal comment tu pourrais faire
    il y a une solution...

    faire en sorte que ton service windows interroge régulièrement (à intervalles régulier) la base de données, et vérifie s'il n'y a pas eu un changement quelconque, pour cela voici quelques voies...

    - consulter les logs de la DB afin de pouvoir tracé les derniers évenements qui ont eu lieu et ce qu'ils ont fait (pas forcément aisé à mettre en oeuvre et totalement lié à un type de SGBDR) => plus sure et fiable et surtout pas de mapping ni rien ne mémoire.
    - faire un mapping par Entity Framework et le laisser se démerder en faisant faire un update de ses données régulièrement par la base, si un changement à eu lieu... t'a plus qu'a agir...

    d'autres voies existes mais là pour l'instant... si quelqu'un a une autre idée

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/08/2014, 20h08
  2. Insert en base renvoie une erreur
    Par maStarlette77 dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 27/06/2011, 17h20
  3. Réponses: 0
    Dernier message: 26/11/2008, 14h26
  4. pb lors de l'exécution de mon prgm
    Par salseropom dans le forum C
    Réponses: 2
    Dernier message: 14/12/2005, 09h33
  5. Problème avec mon service mysql et PhpMyAdmin
    Par Fixazo dans le forum Outils
    Réponses: 1
    Dernier message: 28/08/2005, 18h02

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