|
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).
|