Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Delphi no toma los Registros Modificados de Firebird (https://www.clubdelphi.com/foros/showthread.php?t=29068)

Ricardojosep 11-01-2006 18:30:51

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!!!!

jachguate 11-01-2006 20:49:18

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.

Ricardojosep 12-01-2006 15:05:44

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 :cool: .

Saludos!!


La franja horaria es GMT +2. Ahora son las 10:18:01.

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