plop3000
Messages postés135Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention 7 avril 2012
-
6 juin 2007 à 11:24
plop3000
Messages postés135Date d'inscriptionmercredi 23 mai 2007StatutMembreDerniè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.
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 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)
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 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)
plop3000
Messages postés135Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention 7 avril 20121 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 )
plop3000
Messages postés135Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention 7 avril 20121 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
Vous n’avez pas trouvé la réponse que vous recherchez ?