![]() |
Como saber si se insertó un registro en una tabla
Saludos amigos,
El caso es el siguiente: Existe una aplicación (No hecha en delphi) que maneja su BD en SQL Server, la tarea que me han encomendado es saber si en una tabla especifica se realizó un Insert. Obviamente tengo acceso a dicha BD, desde mi aplicacion "Monitor" y mantener un contador de las filas insertadas alli. Atte, Americo |
Puedes saber que se ingresaron registros en una tabla por muchos medios, pero no puedes saber si el origen del dato es la aplicación.
Sin conocer el modelo de datos, puedes hacer algo de todo esto:
Saludos. |
Cita:
Estoy usando los componentes UniDAC, me preguntaba si quizás existe algún evento del dataset (TUniTable o TUniQuery) desde mi aplicación que apunta a esa tabla que se dispare de forma asíncrona cada vez que dicha tabla registra un nuevo registro. Atte |
Si se inserta desde otra aplicación, tu aplicación no va a recibir un evento de la base de datos.
Yo exploraría mediante un uso de un trigger y xp_cmdshell, para que al momento de crear un registro se ejecute una aplicación que notifique a la tuya, mediante un socket o similar. Desconozco SqlServer, pero algunos motores te permiten escribir tus propias librerías para cálculo donde puedes introducir tu mecanismo de notificación. Saludos. |
Cita:
|
Cita:
A lo comentado por [delphi.com.ar] yo añadiría las "Query Notifications" (link); Ya que estás con FireDAC (TFDEventAlerter (link)) y SQLServer, con esta configuración puedes usarlas (SQLServer las tiene y FireDAC las implementa). Aquí tienes la lista de Base de Datos que las soportan y que puedes acceder a ellas utilizando FireDAC. Cita:
En el caso de "Query Notifications" son contra la Base de Datos, por lo tanto es independiente de la aplicación con la que se hayan insertado/Modificado/Borrado los registros de la tabla. Tu aplicación recibe las notificaciones que le hayas programado, Tienes la explicación completa de cómo hacerlo, con todo lo necesario y un proyecto con código fuente en esta entrada de mi blog: https://neftali.clubdelphi.com/event...notifications/ IMPORTANTE: Lo explica en el artículo, que tienes que activar el servicio ENABLE_BROKER para la Base de Datos (si no lo tiene activo). Ahí tienes cómo consultarlo y cómo activarlo si es necesario. |
Cita:
Estoy en modo investigación. Atte |
La franja horaria es GMT +2. Ahora son las 07:54:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi