Service Windows et BDD [Résolu]

Signaler
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
-
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
-
Bonjour,

je souhaiterait pouvoir scruter une Base de données, pour qu'à chaque ajout dans une table, une application se lance (cette application se sert des données nouvellement ajoutées dans la base). Pour ce faire, j'ai créé un service windows, mais je ne vois pas comment je peux faire pour que le service regarde l'état de ma base et lance alors le programme. Faudrait il un timer ou existe-t-il quelquechose d'autre ?
Bref, je ne vois pas comment faire, si quelqu'un pouvait m'aider ce serait très sympa.

Merci d'avance pour votre aide.

5 réponses

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
Tu as plusireurs solutions :

   - Base de donnée (mais comme tu ne la controle pas, et que faire une nouvelle base juste pour ça ne vaut pas la peine, on oublie)
   - Base de registre (vivement déconseillée, ne devrait à mon avis plus être utilisée)
   - Fichier texte
   - Fichier de config (Très facile)

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
Hello,

Si tu as le contrôle de la structure de la base, tu peux rajouter une colonne de type DateTime, ajouter un trigger sur les insertions (et sur les update si nécessaire) qui mets la date de la modif dans cette colonne, et un index sur cette colonne.

Avec tout ça, ton service recherche tout les enregistrements où cette date est supérieure au dernier controle, et le tour est joué.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
1
Je ne controle pas la structure de la base mais il existe, dans la table qui m'intéresse, un champ dateTime qui contient la date et l'heure des nouveaux enregistrements, donc ta solution semble bien s'appliquer dans mon cas  . Cependant j'a quand même une question :

Comment puis je alors faire pour que mon service sache pour quelles dates il doit faire quelquechose ? En effet, je ne veux lancer le traitement que pour les nouvelles dates, donc il faut que je stock la dernière date pour laquelle le service a travaillé. Mais où stocker cette date ? 
(J'espère que je suis clair  )

Merci pour ton aide en tout cas SharpMao 
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
1
Et une autre question :

Comment le service peut il faire pour décider de lancer l'appli ? Le service devrait scruter la base de données, mais comment ? Je pensai faire un timer qui par exemple toutes les 10 minutes ferait que le service regarde s'il y a de nouveaux enregistrements. Est ce que ça vous semble être une bonne idée ? Ou bien y a t il une autre solution plus adaptée à mon problème ?

Merci d'avance
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
1
Ok merci je vais regarder ça alors