Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Como sincronizar 2 aplicaciones q usan una misma BD

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Como sincronizar 2 aplicaciones q usan una misma BD Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

pegale un vistazo a esto
https://cppbuilder.es/viewtopic.php?t=13143
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.