sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un
enregistrement.
je m'explique :
un utilisateur ouvre un dossier, il est le premier, il peut le
modifier, on pose un verrou en mise à jour. dans l'intervalle, un autre
utilisateur ouvre ce même dossier. je souhaiterai tester l'état de
verrouillage afin de lui ouvrir le dossier en lui signalant qu'il est
en lecture seule et lui fournir les données originelles.
pour le premier utilisateur, je pose un verrou en mise à jour avec un
WITH(UPDLOCK) soit
begin tran
select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
la transaction n'est fermée que lorsque le premier utilisateur ferme le
dossier, qu'il ait fait des modifs ou non.
quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin
d'ouvrir en lecture seule pour le deuxième utilisateur ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Otra
> Bonjour,
sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un enregistrement. je m'explique : un utilisateur ouvre un dossier, il est le premier, il peut le modifier, on pose un verrou en mise à jour. dans l'intervalle, un autre utilisateur ouvre ce même dossier. je souhaiterai tester l'état de verrouillage afin de lui ouvrir le dossier en lui signalant qu'il est en lecture seule et lui fournir les données originelles. pour le premier utilisateur, je pose un verrou en mise à jour avec un WITH(UPDLOCK) soit begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
la transaction n'est fermée que lorsque le premier utilisateur ferme le dossier, qu'il ait fait des modifs ou non.
quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin d'ouvrir en lecture seule pour le deuxième utilisateur ?
merci de votre aide.
retour : A force de désespérance, on a fini par trouver (se contenter) de mettre le LOCK_TIMEOUT à 0 avec un test sur l'erreur au niveau de la transaction soit : SET LOCK_TIMEOUT 0 begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier if @@ERROR=0 begin traitement ok end else begin traitement verrou, lecture seule ok
> Bonjour,
sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un
enregistrement.
je m'explique :
un utilisateur ouvre un dossier, il est le premier, il peut le modifier, on
pose un verrou en mise à jour. dans l'intervalle, un autre utilisateur ouvre
ce même dossier. je souhaiterai tester l'état de verrouillage afin de lui
ouvrir le dossier en lui signalant qu'il est en lecture seule et lui fournir
les données originelles.
pour le premier utilisateur, je pose un verrou en mise à jour avec un
WITH(UPDLOCK) soit
begin tran
select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
la transaction n'est fermée que lorsque le premier utilisateur ferme le
dossier, qu'il ait fait des modifs ou non.
quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin
d'ouvrir en lecture seule pour le deuxième utilisateur ?
merci de votre aide.
retour :
A force de désespérance, on a fini par trouver (se contenter) de mettre
le LOCK_TIMEOUT à 0 avec un test sur l'erreur au niveau de la
transaction soit :
SET LOCK_TIMEOUT 0
begin tran
select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
if @@ERROR=0
begin
traitement ok
end
else
begin
traitement verrou, lecture seule
ok
sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un enregistrement. je m'explique : un utilisateur ouvre un dossier, il est le premier, il peut le modifier, on pose un verrou en mise à jour. dans l'intervalle, un autre utilisateur ouvre ce même dossier. je souhaiterai tester l'état de verrouillage afin de lui ouvrir le dossier en lui signalant qu'il est en lecture seule et lui fournir les données originelles. pour le premier utilisateur, je pose un verrou en mise à jour avec un WITH(UPDLOCK) soit begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
la transaction n'est fermée que lorsque le premier utilisateur ferme le dossier, qu'il ait fait des modifs ou non.
quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin d'ouvrir en lecture seule pour le deuxième utilisateur ?
merci de votre aide.
retour : A force de désespérance, on a fini par trouver (se contenter) de mettre le LOCK_TIMEOUT à 0 avec un test sur l'erreur au niveau de la transaction soit : SET LOCK_TIMEOUT 0 begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier if @@ERROR=0 begin traitement ok end else begin traitement verrou, lecture seule ok
zoltix
Otra a écrit :
Bonjour,
sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un enregistrement. je m'explique : un utilisateur ouvre un dossier, il est le premier, il peut le modifier, on pose un verrou en mise à jour. dans l'intervalle, un autre utilisateur ouvre ce même dossier. je souhaiterai tester l'état de verrouillage afin de lui ouvrir le dossier en lui signalant qu'il est en lecture seule et lui fournir les données originelles. pour le premier utilisateur, je pose un verrou en mise à jour avec un WITH(UPDLOCK) soit begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
la transaction n'est fermée que lorsque le premier utilisateur ferme le dossier, qu'il ait fait des modifs ou non.
quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin d'ouvrir en lecture seule pour le deuxième utilisateur ?
merci de votre aide.
retour : A force de désespérance, on a fini par trouver (se contenter) de mettre le LOCK_TIMEOUT à 0 avec un test sur l'erreur au niveau de la transaction soit : SET LOCK_TIMEOUT 0 begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier if @@ERROR=0 begin traitement ok end else begin traitement verrou, lecture seule ok
cooollll je note..........
Otra a écrit :
Bonjour,
sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un
enregistrement.
je m'explique :
un utilisateur ouvre un dossier, il est le premier, il peut le
modifier, on pose un verrou en mise à jour. dans l'intervalle, un
autre utilisateur ouvre ce même dossier. je souhaiterai tester l'état
de verrouillage afin de lui ouvrir le dossier en lui signalant qu'il
est en lecture seule et lui fournir les données originelles.
pour le premier utilisateur, je pose un verrou en mise à jour avec un
WITH(UPDLOCK) soit
begin tran
select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
la transaction n'est fermée que lorsque le premier utilisateur ferme
le dossier, qu'il ait fait des modifs ou non.
quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin
d'ouvrir en lecture seule pour le deuxième utilisateur ?
merci de votre aide.
retour :
A force de désespérance, on a fini par trouver (se contenter) de mettre
le LOCK_TIMEOUT à 0 avec un test sur l'erreur au niveau de la
transaction soit :
SET LOCK_TIMEOUT 0
begin tran
select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
if @@ERROR=0
begin
traitement ok
end
else
begin
traitement verrou, lecture seule
ok
sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un enregistrement. je m'explique : un utilisateur ouvre un dossier, il est le premier, il peut le modifier, on pose un verrou en mise à jour. dans l'intervalle, un autre utilisateur ouvre ce même dossier. je souhaiterai tester l'état de verrouillage afin de lui ouvrir le dossier en lui signalant qu'il est en lecture seule et lui fournir les données originelles. pour le premier utilisateur, je pose un verrou en mise à jour avec un WITH(UPDLOCK) soit begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
la transaction n'est fermée que lorsque le premier utilisateur ferme le dossier, qu'il ait fait des modifs ou non.
quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin d'ouvrir en lecture seule pour le deuxième utilisateur ?
merci de votre aide.
retour : A force de désespérance, on a fini par trouver (se contenter) de mettre le LOCK_TIMEOUT à 0 avec un test sur l'erreur au niveau de la transaction soit : SET LOCK_TIMEOUT 0 begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier if @@ERROR=0 begin traitement ok end else begin traitement verrou, lecture seule ok
cooollll je note..........
Christian Robert
Essayez avec WITH READPAST, il ne vous envoie que les enregistrements non affectées par un verrou exclusif ou update...
-- Cordialement, Christian Robert http://blogs.developpeur.org/christian/ MCT - Database Development / Database Administration
"Otra" a écrit :
> Bonjour, > > sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un > enregistrement. > je m'explique : > un utilisateur ouvre un dossier, il est le premier, il peut le modifier, on > pose un verrou en mise à jour. dans l'intervalle, un autre utilisateur ouvre > ce même dossier. je souhaiterai tester l'état de verrouillage afin de lui > ouvrir le dossier en lui signalant qu'il est en lecture seule et lui fournir > les données originelles. > pour le premier utilisateur, je pose un verrou en mise à jour avec un > WITH(UPDLOCK) soit > begin tran > select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier > > la transaction n'est fermée que lorsque le premier utilisateur ferme le > dossier, qu'il ait fait des modifs ou non. > > quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin > d'ouvrir en lecture seule pour le deuxième utilisateur ? > > merci de votre aide.
retour : A force de désespérance, on a fini par trouver (se contenter) de mettre le LOCK_TIMEOUT à 0 avec un test sur l'erreur au niveau de la transaction soit : SET LOCK_TIMEOUT 0 begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier if @@ERROR=0 begin traitement ok end else begin traitement verrou, lecture seule ok
Essayez avec WITH READPAST, il ne vous envoie que les enregistrements non
affectées par un verrou exclusif ou update...
--
Cordialement,
Christian Robert http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration
"Otra" a écrit :
> Bonjour,
>
> sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un
> enregistrement.
> je m'explique :
> un utilisateur ouvre un dossier, il est le premier, il peut le modifier, on
> pose un verrou en mise à jour. dans l'intervalle, un autre utilisateur ouvre
> ce même dossier. je souhaiterai tester l'état de verrouillage afin de lui
> ouvrir le dossier en lui signalant qu'il est en lecture seule et lui fournir
> les données originelles.
> pour le premier utilisateur, je pose un verrou en mise à jour avec un
> WITH(UPDLOCK) soit
> begin tran
> select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
>
> la transaction n'est fermée que lorsque le premier utilisateur ferme le
> dossier, qu'il ait fait des modifs ou non.
>
> quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin
> d'ouvrir en lecture seule pour le deuxième utilisateur ?
>
> merci de votre aide.
retour :
A force de désespérance, on a fini par trouver (se contenter) de mettre
le LOCK_TIMEOUT à 0 avec un test sur l'erreur au niveau de la
transaction soit :
SET LOCK_TIMEOUT 0
begin tran
select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier
if @@ERROR=0
begin
traitement ok
end
else
begin
traitement verrou, lecture seule
ok
Essayez avec WITH READPAST, il ne vous envoie que les enregistrements non affectées par un verrou exclusif ou update...
-- Cordialement, Christian Robert http://blogs.developpeur.org/christian/ MCT - Database Development / Database Administration
"Otra" a écrit :
> Bonjour, > > sous SQL 2000 je souhaiterai tester l'état de verrouillage d'un > enregistrement. > je m'explique : > un utilisateur ouvre un dossier, il est le premier, il peut le modifier, on > pose un verrou en mise à jour. dans l'intervalle, un autre utilisateur ouvre > ce même dossier. je souhaiterai tester l'état de verrouillage afin de lui > ouvrir le dossier en lui signalant qu'il est en lecture seule et lui fournir > les données originelles. > pour le premier utilisateur, je pose un verrou en mise à jour avec un > WITH(UPDLOCK) soit > begin tran > select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier > > la transaction n'est fermée que lorsque le premier utilisateur ferme le > dossier, qu'il ait fait des modifs ou non. > > quel test faire pour savoir qu'un UPDLOCK est posé sur le dossier afin > d'ouvrir en lecture seule pour le deuxième utilisateur ? > > merci de votre aide.
retour : A force de désespérance, on a fini par trouver (se contenter) de mettre le LOCK_TIMEOUT à 0 avec un test sur l'erreur au niveau de la transaction soit : SET LOCK_TIMEOUT 0 begin tran select * from MATABLE WITH(UPDLOCK) where IDdossier = IDMonDossier if @@ERROR=0 begin traitement ok end else begin traitement verrou, lecture seule ok