Service Windows et BDD

Résolu
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 - 6 juin 2007 à 11:24
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 - 6 juin 2007 à 15:46
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

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
6 juin 2007 à 14:22
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)
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
6 juin 2007 à 12:57
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)
0
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 1
6 juin 2007 à 14:10
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 
0
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 1
6 juin 2007 à 14:18
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 1
6 juin 2007 à 15:46
Ok merci je vais regarder ça alors 
0
Rejoignez-nous