Trigger

Tengo una base de datos en SQL Server 2005, esta base de datos se llena desde una aplicación POR, yo programo una aplicación Y en c#, necesito que cada vez que mi tabla alarmas resiba un registro nuevo, mi aplicación Y de C# me envíe un aviso.
Tengo un trigger para la tabla alaramas que se dispara cuando se realiza la inserción, la pregunta es ¿cómo puedo hacer que ese trigger le mande un aviso a mi aplicación en C#?
De antemano muchas gracias...

2 Respuestas

Respuesta
1
Anitsirck,
La solución más efectiva a nivel de arquitectura, sería que todas las aplicaciones que rellenan tu tabla alarmas le avisen a tu aplicación Y cada vez que van a hacer un insert. Si esto no es posible, la mejor solución sería implementar un Web Service en tu aplicación Y y a través del trigger en SQL SERVER comunicarte con dicho Web Service para avisar la inserción de registros
Espero te sirva, cualquier duda no dudes en volver a preguntarme
Leandro
Agradezco mucho tu respuesta...
Efectivamente no es posible que las demás aplicaciones le avisen a la mía cuando realizan inserciones...
Lo del servicio web me parece bien, ¿pero cómo se puede comunicar un trigger con un servicio web?
Saludos!
Te paso los pasos que tendrías que hacer:
* Armar un assembly para incorporar en el SQL SERVER 2005. ( Es una nueva característica de SQL SERVER 2005).
* Cargar el assembly en el
* Disparar el cliente del WS al momento de realizar algún insert.
Para todos estos pasos deberías tener en cuenta la seguridad que tengas configurada en la base de datos, que te permita realizar todas estas operaciones
Cualquier otra consulta, no dudes en volver a preguntar
Leandro
Respuesta
Más bien es al revés, tendrás que generar un proceso que sea residente, como un servicio de windows, para que este revisando cada determinado tiempo la base de datos y puedas ver los nuevos registros, el trigger es un evento que se programa para trabajar en la base de datos, no fuera de ella...
Hola!
Actualmente lo hago justamente como lo dices, mi programa se encuentra revisando la base de datos cada determinado tiempo (cada 400ms) pero en mi trabajo me dicen que eso es mucho procesamiento, que lo ideal es que sea Sql el que le mande un evento a mi aplicación de c# para informar que un nuevo registro ha ingresado. La verdad no tengo idea de como hacerlo, ni si eso es posible, crees que se pueda hacer de esa forma y si es así, ¿cómo sería?
Muchas gracias por tu tiempo, y tus respuestas... saludos!
¿Desde un trigger o procedimiento almacenado se puede llamar una función de c#?
¿Será posible...?
=( Saludos...
Si esta dentro de la base de datos como un objeto si, pero si no es así, no es posible...
Agradezco mucho tus respuestas, sin embargo aun tengo que resolverlo, es necesario que sea SQL quien me avise del evento, seguiré intentando...
Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas