![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿Cómo conocer algún dato de la tupla que ha producido el evento?
Hola amigos,
Estoy haciendo un servicio de alarmas con firebird, delphi y php, para lo cual estoy haciendo uso de los eventos que puedo generar con firebird. El caso es que ya sé capturar un evento, pero no sé cómo saber qué tupla produjo ese evento. Me explico: Tengo una tabla de alarmas en las que la aplicación php introduce datos de algún tipo de alarma. Con delphi ya logro saber cuándo se produce una alarma, pero no sé qué tupla la produjo. Lo que quiero saber por ejemplo es si introduzco una tupla en la base de datos que contenga (nombreAlarma, tipoAlarma, Descripción, identificador), cuando capturo con delphi el evento que se produce al introducir esta tupla, cómo puedo conocer los datos nombreAlarma, tipoAlarma, Descripción, identificador???? No sé si está claro. Si no lo teneis claro de lo que quiero, me lo comentais y lo intento explicar mejor. Gracias por todo y saludos. |
#2
|
|||
|
|||
Código Delphi [-]
procedure TDataModule1.IBEvents1EventAlert(Sender: TObject; EventName: string; EventCount: Integer; var CancelAlerts: Boolean); begin if EventName='NEW_ALARM' then ***************** end; donde pongo ***********, ¿como sé cuáles son los datos que se han insertado para producir ese evento? Creo que así está más claro |
#3
|
||||
|
||||
Me imagino que te enteras que se cambio algo desde php al poner un evento dentro de un trigger... pon varios eventos:
|
#4
|
|||
|
|||
Ya, pero no es a eso a lo que me refiero. Por ejemplo, Tengo un trigger AFTER INSERT que lo que hace es un post_event "NEW_ALARM". Si yo por ejemplo inserto una alarma con los siguientes datos (idAlarma, nombreAlarma, EquipoDeAlarma, MotivoDeAlarma) que son realmente (3, 'Alarma por Temperatura, 'Frigorífico 2', 'La temperatura ha bajado de 3 grados') , con el delphi yo puedo saber que se ha introducido una tupla, pero ¿cómo sé yo que la tupla que ha producido el evento es (3, 'Alarma por Temperatura, 'Frigorífico 2', 'La temperatura ha bajado de 3 grados')?
Gracias y saludos. |
#6
|
|||
|
|||
Gracias RONPABLO. Eso lo había pensado, pero si se introducen 2 tuplas casi al mismo tiempo, ¿no habrá problemas de concurrencia?
|
#7
|
|||
|
|||
Además, uno de los campos de la alarma es si está activa, de forma que cuando la alarma no está activa (un update) también tengo que saber qué alarma ya no está activa, y eso creo que no lo puedo saber con un select.
¿No hay alguna forma de pasar parámetros al POST_EVENT? |
#8
|
|||
|
|||
los eventos de firebird no pueden tener parametros, por lo menos hasta 1.5.x que es lo que yo conozco, pero dudo que que se pueda porque si uno hace el post dos veces del mismo evento y después hace un commit, ahí recien llegan los eventos a los clientes pero llega una sola vez por cada evento, si tuvieran parámetros, ¿cúal llegaría?
llendo a lo práctico, creo que te las vas a tener que rebuscar con una tabla auxiliar y mezclado con un mecanismo de auditoria, cada vez que hay una modificación puedes postearlo en una tabla con el ID de transacción que la realizo, en que tabla, que tipo de operación fue y que clave primaria afecto. el cliente que se hace cargo de eso lo puede borrar a ver si alguien tiene una idea mejor suerte |
#9
|
||||
|
||||
Sigo en la misma línea, de hecho:
se ve que puede haber ocurrido una acumulación del mismo evento, por tanto es imposible saberlo. La idea del compañero pvizcay me parece más que acertada. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como conocer el ultimo valor autonumerico creado de una tabla | Tama | MS SQL Server | 8 | 16-06-2004 19:14:30 |
Refrescar sólo si se han producido cambios | Sirkius | Conexión con bases de datos | 3 | 08-06-2004 19:05:22 |
Algun soft como Delphi? | crackman | Varios | 5 | 15-10-2003 16:12:30 |
Se ha producido la excepcion unkhow sw 0xc00000fd | Cabanyaler | SQL | 2 | 22-09-2003 09:13:12 |
Como conocer Path a mi programa sin usar Getcurrentdir | rrf | Varios | 1 | 24-08-2003 22:13:59 |
![]() |
|