FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Detectar un cambio en Mysql
Reciban un cordial saludo.
queria preguntar como puedo detectar cambios en una base de datos mysql, el tema es el siguiente hay un servicio que esta conectado a la base de datos y inserta registros de acuerdo a un equipo que genera eventos de temperatura en una maquina. yo en mi software reviso la tabla cada segundo para ver si se ha insertado un nuevo registro, pero lo que quiero es que cada vez que se inserte un registro o se edite, borre etc pueda en mi programa detectar el cambio sin realizar tanta consultas (1 por segundo) y ahi si hacer la lectura de la tabla. no se si firedac tenga un componente que haga esto. de antemano muchas gracias
__________________
No basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas Goethe |
#2
|
||||
|
||||
Supongo que mysql tendrá triggers (eventos que se disparan al insertar, editar y borrar registros)
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
y como le avisan los triggers a mi programa
debo alcarar supongo.
el servicio que inserta los registros en la tabla de Mysql no lo controlo es de terceros y lo unico que hace es tomar datos de un equipo que registra temperatura e insertar estos registros en una tabla de mysql, el trigger claro que funciona pero lo que no veo es como podria este trigger avisarle a mi programa que se inserto un registro en la tabla si como vuelvo a decir no controlo el servicio. existe un componente en firedac o como se hace esto
__________________
No basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas Goethe |
#4
|
||||
|
||||
Pues tal y como he comentado antes, el trigger se dispara cada vez que se inserta, actualiza o borra un registro. No tiene nada que ver el servicio, es algo interno de la base de datos.
Puedes hacer que se inserte un registro que te venga bien, que salga un mensaje a todos los usuarios, etc. Seguro que se podrá hacer, cualquier base de datos lo permite. Yo apenas conozco mysql, pero seguro que se puede.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
el problema no es que me inserte registros
lo que busco es que con el uso no se de algun componente pueda detectar que se hizo la insercion hoy debo leer la tabla cada segundo para detectar los cambio lo que me sobrecarga la base de datos cuando tenemos muchas conexiones, los trigger efectivamente detectan los cambios en la base de datos pero no me comunican esos cambios en mi aplicativo de delphi que es lo que busco el trigger ejecuta instrucciones dependiendo lo programado pero no me envia la alerta a delphi
__________________
No basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas Goethe |
#6
|
||||
|
||||
Con firebird, al menos, sí que se puede. Por eso digo que seguramente mysql también puede.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
||||
|
||||
Yo tampoco conozco MySQL, pero al parecer no soporta los eventos como lo hace Firebird
A ver si este enalce arroja un poco de luz. En realidad la pregunta que hay que hacerse es, es realmente importante que todos los usuarios reciban las nuevas modificaciones instantaneamente? No se como esta construido tu software, es una aplicacion cliente-servidor? Es decir, cada pc se conecta mediante FireDAC a la base de datos MySQL o hay un servidor de aplicaciones en el medio? Yo crearia un thread que se encarge de verificar si hubo algun cambio en la tabla y de haberlo que mande una alerta(ejecute un proceso que actualize bla bla bla). En realidad eso es basicamente lo que haria el "componente" Última edición por AgustinOrtu fecha: 17-11-2015 a las 01:08:48. |
#8
|
||||
|
||||
MySQL no cuenta con eventos de este tipo. De todas formas, no hay que asustarse por realizar una consulta cada tantos segundos, siempre y cuando sea una consulta rápida. Puedes usar un trigger para insertar el "evento" en una tabla de cambios y únicamente consultar esa tabla.
// Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Detectar cambio en Listbox | Anel Hernandez | Varios | 7 | 22-10-2012 20:26:33 |
Detectar cambio en componentes | capo979 | Varios | 5 | 24-04-2008 18:10:22 |
Detectar cambio de posicion en dataset | Ezecool | Conexión con bases de datos | 7 | 10-07-2007 21:53:19 |
Detectar cambio de ItemIndex en ComboBox | ixMike | OOP | 5 | 19-10-2006 21:39:03 |
Detectar el cambio de un directorio | NeWNeO | API de Windows | 2 | 03-01-2005 10:36:48 |
|