Detectar cambios al momento de realizar un Insert o un Update

11/09/2006 - 19:49 por Problema con BULK Insert | Informe spam
Hola a todos,

Estoy tratando de cachar los cambios efectuados a una tabla por medio de
una conexión abierta(esto es automaticamente, como si fuera un trigger o algo
asi), ya le intente de muchas formas pero no le e dado al clavo; me podria
alguien decir como hacerle??? o de plano no se puede???

Saludos.
 

Leer las respuestas

#1 Alberto Poblacion
11/09/2006 - 22:47 | Informe spam
"Problema con BULK Insert"
wrote in message news:
Estoy tratando de cachar los cambios efectuados a una tabla por medio
de
una conexión abierta(esto es automaticamente, como si fuera un trigger o
algo
asi), ya le intente de muchas formas pero no le e dado al clavo; me podria
alguien decir como hacerle??? o de plano no se puede???



A ver si lo entiendo, desde un programa de .Net quieres abrir una
conexión a un servidor SQL, y que se te ejecute automáticamente un código en
tu programa de .Net cuando cambie una tabla en el servidor SQL, ¿es eso?

Si estás usando la versión 2 de .Net (Visual Studio 2005), puedes mirar
en el manual la clase SqlDependency, que está pensada sobre todo para vaciar
el caché del programa cliente cuando cambia una tabla en el servidor.
Dispone de un evento OnChange para informarte de los cambios. Pero ten
presente que la versión "standard" funciona por "polling", es decir, que una
vez cada x segundos consulta al servidor a ver si hay cambios, por lo que no
resulta adecuada para usarla desde múltiples programas cliente conectados a
la vez con el servidor.

Otra alternativa es usar un trigger en el servidor, y hacer que el
código del trigger utilice algún mecanismo de comunicación inter procesos
para notificar a tu programa cliente. Si el servidor es SQL Server 2005,
puedes crear un triger escrito con código de .Net y desde él usar .Net
Remoting para comunicar con tu programa cliente.

Preguntas similares