FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
actualizar bd firebird
Buenas,
Se que la pregunta es un poco simple dado el caso, pero estoy migrando de sqlite a firebird y tengo algunas dudas. Tengo 2 programas que usan la misma base de datos, y los tengo abiertos, si con uno de ellos añado un registro, como puedo ver la actualización desde el otro programa sin tener que cerrarlo y volver a abrirlo. De momento estoy usando el commit en true. Saludos y mil gracias |
#2
|
||||
|
||||
Hola Anubis.
La declaración POST_EVENT permite disparar un mensaje al manejador de eventos de Firebird para avisar del acontecimiento de algún cambio en la BD evitando así el poolling periódico como en otras DBMS. Los eventos se envían al manejador de eventos desde algún trigger o procedure señalando la acción que se desarrolló. Por ejemplo: Enviar mensajes de inserción, modificación y borrado que se realicen en la tabla 'TABLA':
Una vez realizado Commit o CommitRetaining, el evento es disparado y Firebird lo notificará. Ahora hay que detectar esa notificación desde Delphi, para eso podes utilizar el componente TIBEvents (si estas usando los componentes IBX) Ejemplo de cofiguración del componente: Desde Object Inspector
Luego podes realizar las acciones pertinentes a cada caso, como por ejemplo un Refresh sobre la tabla en cuestión. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Hola.
¡¡¡Ojo con POST_EVENT!!! cuidado cómo tratas el evento en la otra aplicación. Supongamos que sin más haces un "refresh" a la tabla para que así vea el nuevo registro añadido en la otra aplicación y da la casualidad que el usuario está en mitad de un alta sobre la misma tabla, seguramente lo fastidies. un saludo. |
#4
|
||||
|
||||
Se agradecen las respuestas, a ver si lo pruebo.
con respecto al post_even, en esos casos que mencionas que se suele hacer. saludos gracias |
#5
|
||||
|
||||
Hola Anubis.
En todos los casos, lo primero que debes hacer es notificar la acción acontecida, la acción que tomes luego depende de como desees manejarla. Como veo que estas incurriendo en Firebird te recomiendo leer sobre concurrencia, transacciones, bloqueos optimistas/pesimistas y eventos para familiarizarte con ellos. En estos enlaces vas a encontrar información buscando por esos términos en el contenido:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
||||
|
||||
hola de nuevo.
El trigger para los eventos me funciona, y en la otra aplicacion si se dispara y me muestra un showmessage qu ele puse, pero no se actualiza, por ejemplo el dbgrid. He probado a poner zquery1.refresh, tambien zquery1.close y luego open, pero no queda, alguna sugerencia? Gracias a todos por vuestros consejos y paciencia. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Script para actualizar DB en Firebird | Luis M. | Firebird e Interbase | 3 | 18-06-2012 19:32:47 |
dbexpress y Firebird (cambiar o actualizar datos) | jourdan | Conexión con bases de datos | 2 | 11-08-2010 00:01:27 |
como actualizar un solo registro en firebird 2.1? | El_Raso | Firebird e Interbase | 4 | 23-01-2009 16:24:56 |
como actualizar firebird 1.5 a firebird 2.0 | cidarta | Firebird e Interbase | 3 | 26-04-2006 09:57:07 |
Como actualizar campos de Texto en FireBird | DavidR | Conexión con bases de datos | 2 | 01-11-2003 02:12:28 |
|