| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Schweiko Lt JG

Registrado: 05 Jun 2008Mensajes: 65Ubicación: Argentina - Misiones
|
Publicado: Mie 18 Feb, 2009 9:52 pm Asunto: Como sincronizar 2 aplicaciones q usan una misma BD |
|
|
Buenas foro... tengo el siguiente problema...
tengo una base de datos firebird en una pc... 2 pc en red y ambas acceden a la misma base de datos... utilizo c++ builder 2007 y componentes:
IBTransaction, IBDataBase, IBQuery (para consultas) IBTable (para mostrar la base de datos completa en la aplicacion server y modificar la tabla)
Mi problema es que si una de las aplicaciones modifica la base de datos la otra no lo ve... los cambios se producen solo cuando cierro laS aplicacioneS y las vuelvo a abrir... como lo puedo solucionar? que estoy haciendo mal? muchas gracias desde ya... |
|
| Volver arriba |
|
 |
mns Lt

Registrado: 15 Oct 2008Mensajes: 95
|
|
| Volver arriba |
|
 |
Schweiko Lt JG

Registrado: 05 Jun 2008Mensajes: 65Ubicación: Argentina - Misiones
|
Publicado: Lun 23 Feb, 2009 8:57 pm Asunto: |
|
|
Gracias por la Info...
Pero no puedo lograr que el TIBEvents me Registre los eventos...
La base de datos es la siguiente
| Código: |
CREATE TABLE ARTICULOS (
CODIGO INTEGER NOT NULL,
NOMBRE VARCHAR(20) CHARACTER SET ISO8859_1 NOT NULL COLLATE ES_ES,
PRECIO DOUBLE PRECISION NOT NULL,
FECHA DATE DEFAULT 'NOW',
DESCRIPCION VARCHAR(100) CHARACTER SET ISO8859_1 COLLATE ISO8859_1);
ALTER TABLE ARTICULOS ADD PRIMARY KEY (CODIGO);
|
mi trigger es el siguiente
| Código: |
CREATE TRIGGER ARTICULOS_BI FOR ARTICULOS
ACTIVE AFTER INSERT OR UPDATE OR DELETE
POSITION 1
AS
BEGIN
/* Trigger body */
POST_EVENT 'UpdateTable';
END^
|
pero sigo teniendo el problema.. gracias por la ayuda |
|
| Volver arriba |
|
 |
mns Lt

Registrado: 15 Oct 2008Mensajes: 95
|
Publicado: Lun 23 Feb, 2009 10:09 pm Asunto: |
|
|
No se si lo has hecho o no , pero en el IbEvents debes añadir los eventos en la propiedad events y cuando abras la tabla
tabla->Open();
zAlert->RegisterEvents();
zAlert->Registered = true;
entonces recibe los eventos que manda la base de datos
luego en en onEvent se puede capturar cual es el evento
con EventName
if(EventName == "evento"){
}
y antes de cerra el formulario debes desregistrarlos
zAlert->Registered = false;
zAlert->UregisterEvents();
espero que te sirva |
|
| Volver arriba |
|
 |
alfredo Master

Registrado: 13 Oct 2003Mensajes: 246Ubicación: Valencia Venezuela
|
Publicado: Mie 25 Feb, 2009 12:30 am Asunto: |
|
|
Saludos, una forma simple es una vez creado el trigger que genera el evento de alerta haz lo siguente en la aplicacion:
En el IBEvents pon la propiedad AutoRegister a true.
En la Propiedad Events del inspector doble click y pulsa el boton Add Event, ahora añade el nombre del evento "UpdateTable" y cierra el dialogo.
En la propiedad OnEventAlert escribe el codigo para actualizar la
tabla puedes hacer un Commit, Cerrar y Abrir la Tabla o un Refresh, personalmente prefiero lo segundo pero antes verifico que la tabla no
este siendo editada para evitarle disgustos al usuario y al programador, jejeje... |
|
| Volver arriba |
|
 |
Schweiko Lt JG

Registrado: 05 Jun 2008Mensajes: 65Ubicación: Argentina - Misiones
|
Publicado: Mie 25 Feb, 2009 3:15 am Asunto: |
|
|
Muchisimas gracias.. no se que haria sin el foro y sin ustedes...
ahora funciona correctamente.. simplemente faltaba registrar los eventos.. gracias por toda la ayuda...
Una consulta mas ya que estamos en el tema... Si utilizo un Query en ves de un Table se ejecutan los triggers o hay que hacer algo mas? como se harian? muchas gracias por la ayuda... |
|
| Volver arriba |
|
 |
mns Lt

Registrado: 15 Oct 2008Mensajes: 95
|
Publicado: Mie 25 Feb, 2009 9:12 am Asunto: |
|
|
| tambien se ejecutan , no es problema si usas un query o un table , ya que el envento se dispara desde la propia base de datos |
|
| Volver arriba |
|
 |
Schweiko Lt JG

Registrado: 05 Jun 2008Mensajes: 65Ubicación: Argentina - Misiones
|
Publicado: Mie 25 Feb, 2009 6:52 pm Asunto: |
|
|
| a perfecto... esos son buenos datos para un novato en base de datos como yo jajja... gracias de verdad.. fue re util sus respuestas |
|
| Volver arriba |
|
 |
|