Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-01-2006
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 21
Ricardojosep Va por buen camino
Delphi no toma los Registros Modificados de Firebird

Hola amantes de Delphi,
En principal, sepan disculparme, pero me ausente mucho tiempo, debido a que no programe en delphi. Ahora, les comento que decidi emprender un proyecto, y estoy de vuelta con Delphi.
Paso a comentar mi problema que tengo desde hace una semana aproximadamente.
El Proyecto consta de dos aplicaciones que se conectan a una misma base de datos FireBird, una de las aplicaciones Modifica un registro, y la otra aplicacion capta la modificacion y hace algo al respecto. Uso Delphi 6, FireBird 1.5, los Componentes MDO (Mercury) para conectarme al Motor, y para que la segunda aplicacion capte el evento uso POST_EVENT en un Trigger After Update.
En fin, ¿Cual es mi problema? El problema es que cuando la primera aplicacion modifica un Registro, El motor realiza el Cambio pero la segunda aplicacion sigue observando los valor antiguos y no los modificados. ¿Me podrian dar una mano con este tema que me tiene mal?, Busque por el Google y en el Foro pero no encontre nada al Respecto, o quiza no se como buscarlo.

Desde ya muchas gracias y hasta pronto. Feliz Año Nuevo!!!! para todos!!!!
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
  #2  
Antiguo 11-01-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
1. Si tu aplicación verá o no los cambios realizados por la otra depende del nivel de aislamiento de la transacción que estas usando, que debiera ser read commited.

2. La notificación de insersión, enviada con el post_event, se realiza inmediatamente (supongo), pero dicha transacción no ha llegado al commit (y probablemente llegué a un rollback). Creo que lo recomendable será dar el tiempo usual de espera en la aplicación que recibe el evento antes de intentar encontrar algo en la bd, para dar tiempo a que se procese el commit en la primera. ¿cuanto tiempo?, vale!, pues depende de cuanto tiempo tarde la otra aplicación en realizar el commit. Lo recomendable es que sean apenas unos cuantos milisegundos.

Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 12-01-2006
Ricardojosep Ricardojosep is offline
Miembro
 
Registrado: sep 2003
Ubicación: Sgo del estero (Argentina)
Posts: 75
Poder: 21
Ricardojosep Va por buen camino
Gracias!!!

Hola jachguate,

Muchas gracias, por tu respuesta, tenias razon, la aplicacion necesitaba unos milisegundos para que tomara el commit, lo solucione poniendo un sleep antes de entrar a ver que pasaba con el evento ocurrido en el trigger.
En fin, muchisimas gracias nuevamente .

Saludos!!
__________________
La amistad es la union de dos almas para formar una sola.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Bloqueo de Registros en FireBird DavidR Firebird e Interbase 6 18-05-2007 17:27:45
Firebird en Delphi JXJ Firebird e Interbase 3 04-11-2005 20:19:48
FireBird con Delphi 2005 jsanchez Firebird e Interbase 5 01-08-2005 15:14:22
Copiar registros de una tabla a otra en Access con Delphi Gelmin Conexión con bases de datos 1 01-07-2005 12:35:04
Componentes a utilizar con Firebird y delphi jourdan Firebird e Interbase 6 15-08-2003 18:22:49


La franja horaria es GMT +2. Ahora son las 05:43:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi