Ver Mensaje Individual
  #3  
Antiguo 22-03-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Reputación: 21
gluglu Va por buen camino
Intentaré ayudar en la medida de lo posible ya que no se expone ningún código para ver lo que haces en concreto.

Cuando comentas que 'construyes una sentencia SQL que actualice el registro', sobre qué elemento IBQuery lo realizas ? Sobre el mismo que tienes para la lectura ?

Si es así, en principio bien, pero si no es así, y utilizas un IBQuery diferente para esa sentencia de actualización, te tienes que asegurar que esté relacionado con la misma Transacción que el IBQuery de lectura.

Por otro lado, haz doble click sobre el IBTransaction que tengas y asegúrate del nivel de aislamiento que quieres. En el post anterior se te ha indicado un link que explica muy bien este asunto. Generalmente yo suelo utilizar 'ReadCommited'. Si no lo tienes puesto, una transacción no podrá ver las actualizaciones que realice otra transacción distinta, hasta que no la cierres y vuelvas a abrir, que es lo que al parecer ocurre en tu caso al salir y entrar al programa.

En cualquier caso, la sentencia de lectura, de modificación, de borrado y de refresco, todas las puedes incluir en un mismo IBQuery y te ahorras utilizar varios.

Siempre que todos los forms accedan al mismo IBQuery, en el mismo DataModule, no tendrás que hacer siquiera un CommitRetaining hasta que decidas definitivamente validar toda la información y guardarla definitivamente en tu Base de Datos.

Si tienes más dudas, podrías exponer un poco de código concreto y al o mejor se te puede ayudar mejor.

Saludos
__________________
Piensa siempre en positivo !
Responder Con Cita