Ver Mensaje Individual
  #2  
Antiguo 16-11-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 19.441
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Lo que a veces he hecho en casos similares es utilizar un TimeStamp; Es un campo de tipo FechaHora en la tabla en cuestión.

(1) Antes de modificar un registro leo el TimeStamp.
(2) Siempre que se actualiza un registro, se comprueba el TimeStamp y si no ha cambiado se actualiza el valor del registro y siempre se actualiza el TimeStamp.

Con estas dos premisas, en el caso que tu propones, el usuario que actualiza rápido no tiene problemas, y al intentarlo el segundo detectaría que el TimeStamp que leyó y el que hay antes de hacer el Update no es e mismo, por lo tanto otro usuario ha actualizado entre medio.

Espero haberme explicado bien.

Implica más consultas, pero como mínimo puedes avisar al usuario; Se puede mejorar más ampliando los campos de control (aunque eso hará más lentas las consultas); Por ejemplo con el último usuario de la modificación.

Cuando se detecta un cambio, puedes dar al usuario la opción de Continuar o Cancelar (si para tu caso tiene sentido).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita