18. september 2008 - 14:55Der er
17 kommentarer og 2 løsninger
Program skal fange når en ny record er tilføjet i SQL DB.
Jeg har lavet er service som skal udføre en masse administrative opgaver i min dagligdag. Jeg har dog en lille detalje, som er, hvordan "tricker" jeg min service til at starte når en ny record er tilføjet min DB?
Uha, min service er ikke i .NET, idet jeg ikke aner hvordan man laver det i .NET. Den SQL jeg har, er bare en EE udgave. Har den også den mulighed? Og hhvordan notify'er den mit program?
arne: Linket er en af coladrengens spørgsmål. Den får du nok ikke points for.
Den notifikationstingest du snakker om. Det er SQL2005, ikke? Hvis det er 2000'eren skal det vist laves i C++, jvf. dette spørgsmål jeg stillede tidligere: http://www.eksperten.dk/spm/761310
Ja, det er korrekt at det er en 2005 EE. Måske træder dette spørgsmål ud af katorien, men hvordan skulle det sættes op i SQL'en. Jeg har set at der er et område der hedder "Trigger". Kan det bruges og hvordan sætter man det op?
Har I nogen ide til det eller skal spørgsmålet flyttes? Jeg har sådan en ide om, at den der "Trigger" kunne oprette en fil med indhold om hvilken record der blev oprettet, ændret og slettet. Min service kunne tjekke den fil og gøre noget udfra det.
Jeg er ikke den hel store haj, så skeer, er kodeordet. :)
Jeg tror at jeg har fundet en anden løsning. Jeg tjekker bare i min db på et felt, fra min service. Hvis det er tomt, må det betyde at den er ny eller der er i hvertfald ikke sket noget siden den er kommet ind. Så vil jeg gøre noget ud fra det.
Naturligvis kan du polle et felt i databasen eller lave en count(*) på records eller lignende. Det er bare ikke nogen pæn måde at lave det på, så derfor var notification service (eller hvad den hed) en meget bedre løsning.
På den anden side er målet jo det vigtigste, ikke ens søgen efter den teknisk smukkeste løsning.
Hvis du har mulighed for at oprette et felt der hedder "handled" eller lignende i tabellen, så kan din service udfylde det når recorden håndteres. Så skal selecten kun lede efter records hvor feltet ikke er udfyldt.
Ydermere, hvis du kun poller eksempelvis en gang i minuttet, kan løsningen være helt fin - og dejlig simpel.
Nu er det ikke fordi at der er mange der skal have adgang til det. Egentlig er det kun mig der laver noget idet. Det er for at lette mit arbejde i hverdagen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.