Cela peut être dangereux comme approche.
Rendez-vous bien compte qu'un utilisateur pourrait ouvrir un "enregistrement" en édition et ensuite fermer l'application.
Il serait peut-être plus efficace de conserver et comparer un numéro de version pour indiquer quand il y a eu changement entre l'ouverture et la sauvegarde.
Sinon il vous faut au moins utiliser un keep alive (en ajax par exemple), et vous n'auriez qu'à exploiter un champ "locked" BIT.
Alors lors que vous voulez ouvrir un enregistrement en édition, vous en lisez le contenu comme suit :
1 2 3 4 5 6
|
UPDATE <table>
SET locked = 1
OUTPUT inserted.*
WHERE locked = 0
AND <clauses where supplémentaires> |
Si 0 lignes, c'est que l'enregistrement n'existe pas ou est bloqué.
Partager