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)
-   -   Datos no se actualizan en otras transacciones (https://www.clubdelphi.com/foros/showthread.php?t=3381)

erickperez6 04-09-2003 15:55:31

Datos no se actualizan en otras transacciones
 
Saludos,

Uso delphi 6 con las IBX, el problema es el siguiente, cuando inserto un registro nuevo o hago alguna actualizacion en el usuario1, someto la transaccion con un commitretaining para que los cambios se apliquen definitivamente. Por otro lado en el usuario2 consultando la misma tabla no se ven los cambios, todo permanece igual, aunque en este otro usuario haga un commitretaining y cierre y abra una y otra vez la consulta a dicha tabla, todavia no puedo ver los cambios !!!

Sin embargo, la unica forma en donde si puedo ver los cambios en el usuario2 es cerrando y abriendo la transaccion, es decir sometiendo la transaccion con un commit, la diferencia del commit al commitretaining es que cierra todos los dataset que tenga abierto en ese momento y de esa manera no me interesa trabajar.

Alguna ayuda o sugerencia para ver los cambios realizados en el usuario2 sin cerrar la transaccion ???

kinobi 04-09-2003 16:25:25

Hola,

Cita:

Posteado originalmente por erickperez6
Alguna ayuda o sugerencia para ver los cambios realizados en el usuario2 sin cerrar la transaccion ???
sí, trabajar con un nivel de aislamiento read_commited para la transacción. Por defecto IBX fija el nivel de aislamiento al más alto: snapshot, lo que provoca que el resto de transacciones concurrentes no puedan ver los cambios (incluso los confirmados con Commit o CommitRetainig) por otras transacciones.

Por cierto, ojo al CommitRetaining, ya que tiene efectos secundarios, como desactivar ciertos mecanismos de eliminación de versiones obsoletas de registros, que pueden traer como consecuencia una pérdida de rendimiento apreciable.

Saludos.

erickperez6 04-09-2003 16:45:47

Disculpa la pregunta, como asigno el read_commited a la transaccion, solo veo en el componente de la transaccion que puedo indicarle las siguientes acciones taRollback, taCommit, taRollbackRetaining, taCommitRetaining en la propiedad defaultaction, tengo actualmente seleccionada taCommitRetaining.

Otra cosa Kinobi, yo habia posteado un hilo nuevo despues de este con el titulo "User abort con applyupdate", me llego el mensaje que alguien habia respondido y cuando voy a buscarlo no aparece, como si fuera borrado. Ocurrio algun problema con ese post ?

kinobi 04-09-2003 16:52:01

Hola,

Cita:

Posteado originalmente por erickperez6
Disculpa la pregunta, como asigno el read_commited a la transaccion,
De forma visual: doble click en el componente TIBTransaction. Te aparecerá un cuadro de diálogo donde podrás fijar el nivel de aislamiento.

Por código: a través de la propiedad Params del TIBTransaction.

Cita:

Posteado originalmente por erickperez6
Otra cosa Kinobi, yo habia posteado un hilo nuevo despues de este con el titulo "User abort con applyupdate", me llego el mensaje que alguien habia respondido y cuando voy a buscarlo no aparece, como si fuera borrado. Ocurrio algun problema con ese post ?
He movido yo el hilo al foro "Conexión con bases de datos". En principio parece un problema en el lado cliente (no relacionado con el servidor) debido al uso de actualizaciones en caché. Los problemas relacionados con componentes de acceso deben ir ese foro.

Por cierto, la respuesta que te llegó es la que puse yo en el hilo, indicando el cambio de foro.

El nuevo enlace al hilo es ...

http://clubdelphi.com/foros/showthre...&threadid=3385

Saludos.

erickperez6 04-09-2003 17:30:03

OK ! muchas gracias, verificare lo del read_commited y planteare lo ocurrido.


La franja horaria es GMT +2. Ahora son las 07:30:50.

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