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)
-   -   Fibtransaction wait i timeout (https://www.clubdelphi.com/foros/showthread.php?t=27875)

celades1 02-12-2005 13:01:45

Fibtransaction wait i timeout
 
Hola

Para Controlar un error de deadloc al modificar dos usuarios el mismo registro trabajando con firebird i fibplus hasta ahora lo hacia con un bucle controlando el error con un try except y en el momento de poder actualizar el registro salir del bucle.
Ahora pensando en las propiedades wait i timeout de la transaccion queria hacer lo mismo que hacia antes pero no me funciona.
Añado wait a los parametros de la transaccion i 5000 al timeout esperando que al ejecutar un fibquery con execquery esperaria 5 segundos a saltar el error o bien si como es habitual en mi aplicación a los 2 segundos que es lo que puede tardar el otro usuario en dejar libre el registro, se ejecute el execquery sin problemas.
Per no sucede lo que yo pensaba sino que salta la exepcion instantaneamente al hacer execquery.
Tambien he probado con wait sin timeout y entonces no salta la excepcion pero como es logico tampoco actualiza el registro ni espera para seguir probando de ejecutar.
Espero vuestra ayuda, porque no se lo que hago mal

Gracias anticipadas

Panta

rastafarey 02-12-2005 16:24:08

Resp
 
No has probado capturar la exception y si el error de bloqueo muerto actualizar tu dataset.

celades1 02-12-2005 19:32:29

Claro lo que hago ahora es controlar el error y ya me funciona, lo que yo quisiera que alguien me aclarase el funcionamiento del wait con el timeout y si con esto se puede evitar de tener que controlar el error con un try except dentro de un bucle e ir probando de ejecutar hasta que se encuentre el registro desbloqueado o bien el usuario apriete Escape (esto ya lo tengo claro) .
Quisiera es un ejemplo del wait i el timeout en una transaccion.

No se si me explico correctamente

Gracias de todas formas

Panta


La franja horaria es GMT +2. Ahora son las 06:00:10.

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