Bonjour,
Je dois gérer dans une application de gestion à certains endroit stratégique un système de gestion d'accès concurrent pessimiste :
Quand un utilisateur "A" rendre en édition sur une commande je souhaite "bloquer" cette commande pour les autres utilisateurs.
Si un autre utilisateur "B" essaye d'éditer cette commande je souhaite pouvoir détecter que la commande est déjà en cours de modification par un autre utilisateur et en l'informer l'utilisateur.
La commande sera débloquée quand l'utilisateur "A" aura quitté l'édition du bon de commande.
Un cas assez classique et pourtant j'ai du mal à trouvé de l'info et des exemples.
J'ai identifié plusieurs solution :
1 - bloquer des lignes dans une transaction avec un select xxx with(WITH (UPDLOCK, HOLDLOCK,ROWLOCK)
2 - gérer un lock des lignes de façon logique (à la main en utilisant un flag)
3 - j'ai trouver également des infos sur sp_getapplock mais j'avoue de pas maîtriser ce truc.
Avez-vous des conseils à me donner ?
Partager