09. september 2006 - 00:28Der er
16 kommentarer og 2 løsninger
SQL Server 2005 Realtime Notificering
Hejsa
er det muligt at få SQL Server til at give et slags "notify" til et C#-program på fx et INSERT statement. Jeg mangler altså en slags trigger, der kan notificere mit C# program.
Det nemmeste må være at lade det gå igennem en seperat process.
Jeg er sikker på at det kan laves med DCOM, men det kender jeg ikke godt nok, så jeg vil antage remoting. Rå sockets og web servive synes ikke at være gode fits.
Alle kald af DAL bliver konverteret til kald af den process via remoting og den kalder så DAL.
Et andet kald tillader registerer sig hos den process. Således at processen kan lave et callback også via remoting.
Hvordan laver jeg den registrering på processen? Resten er jo rimelig nemt, men hvordan får jeg SQL Serveren til at fortælle mig, at der er sket en ændring?
Nu siger du det er et webservice lag - så vidt jeg ved, så kan jeg ikke modtage et "event" realtime fra en webservice? Eller har jeg misforstået det? Så skal jeg vel bruge noget remoting?
Jeg har desværre ikke fået muligheden for at arbejde med det selv, men kun læst om det. Jeg mener der er to måder man kan få triggers på. Via notification services of via managed componenter man installere på selve databasen. Og man kan godt have event på en webservice bare se asynkrone kald:
Nu har jeg installeret Microsoft SQL Server 2005 og Micrsoft SQL Server Management Studio og kan se at jeg et objekt, der hedder Server Objects og Server Triggers. Hvordan melder jeg mit program ind her?
Den sidste anvender Service Brokeren og de ngår helt ned i detaljer. Du skal bruge System.Data.SqlClient.SqlDependency men det hele er beskrevet ganske fint. Jeg legde selv med detfor et års tid siden der var en opsætning på selve SQL server man skulle slå til før det virkede. Kan bare ikke lige huske hvad den hed.
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.