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.
- 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)
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)
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 )
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 ?