comment connaitre l'utilisateur qui utilise un document 'en'
Modérateurs: Super-Apogea, Super Modérateur
3 messages
|Page 1 sur 1
comment connaitre l'utilisateur qui utilise un document 'en'
Salut tout le monde
je veux connaitre l'utilisateur qui utilise un document en cours d'utilisation
j'ai un code sql mais il passe par xp_CBUnLockRecord que je ne veux pas la debloquer je veux juste connaitre qui la utilise
use database
DECLARE @LOCK int
DECLARE @lBase int
DECLARE @lTable int
DECLARE @lRes int
DECLARE @ress int
DECLARE @ress1 varchar (15)
DECLARE @spid int
DECLARE @sp int
DECLARE @DO_Piece varchar (8)
declare @table varchar (50)
set @spid = 0
set @DO_Piece='document Number' --@piece
set @table ='f_docentete'
DECLARE MyCursor CURSOR FOR
SELECT cbMarq FROM F_DOCENTETE where DO_Piece=@DO_Piece -- BCXXX = NUMERO DE PIECE (numero du document)
OPEN MyCursor
FETCH NEXT FROM MyCursor INTO @ress
WHILE @spid < 200 -- on considère que 200 est un gros chiffre mais vous pouvez le mettre plus haut
BEGIN
SET NOCOUNT ON
SELECT @lBase = DB_ID()
SELECT @lTable = OBJECT_ID(@table)
EXECUTE @lRes = master..xp_CBUnLockRecord @spid,@lBase,@lTable, 3,@ress -- essaye de débloquer le document du processus i want bypass this without execution
--IF @lRes <> 0
-- RAISERROR(@lRes,11,1) WITH SETERROR
exec CB_IsRecordLock @table, @ress, @LOCK OUTPUT -- test si le document est toujours bloqué
IF @LOCK = 0
BEGIN
IF @spid = 0
BEGIN
print 'Ce document n''est pas bloqué'
break
END
DECLARE Qui CURSOR FOR
select nt_username from master..sysprocesses where spid=@spid
OPEN Qui
FETCH NEXT FROM Qui INTO @ress1
-- print @LOCK
-- print @spid
print 'Le Document '+@DO_Piece + ' bloqué par SPID:' + convert(varchar,@spid) + ' - Username:' + @ress1 + ' a été debloqué'
CLOSE Qui -- je ferme mon curseur
DEALLOCATE Qui -- je libère la mémoire allouée à ce curseur
break
END
set @spid=@spid+1
END
CLOSE myCursor -- je ferme mon curseur
DEALLOCATE myCursor -- je libère la mémoire allouée à ce curseur
je veux connaitre l'utilisateur qui utilise un document en cours d'utilisation
j'ai un code sql mais il passe par xp_CBUnLockRecord que je ne veux pas la debloquer je veux juste connaitre qui la utilise
use database
DECLARE @LOCK int
DECLARE @lBase int
DECLARE @lTable int
DECLARE @lRes int
DECLARE @ress int
DECLARE @ress1 varchar (15)
DECLARE @spid int
DECLARE @sp int
DECLARE @DO_Piece varchar (8)
declare @table varchar (50)
set @spid = 0
set @DO_Piece='document Number' --@piece
set @table ='f_docentete'
DECLARE MyCursor CURSOR FOR
SELECT cbMarq FROM F_DOCENTETE where DO_Piece=@DO_Piece -- BCXXX = NUMERO DE PIECE (numero du document)
OPEN MyCursor
FETCH NEXT FROM MyCursor INTO @ress
WHILE @spid < 200 -- on considère que 200 est un gros chiffre mais vous pouvez le mettre plus haut
BEGIN
SET NOCOUNT ON
SELECT @lBase = DB_ID()
SELECT @lTable = OBJECT_ID(@table)
EXECUTE @lRes = master..xp_CBUnLockRecord @spid,@lBase,@lTable, 3,@ress -- essaye de débloquer le document du processus i want bypass this without execution
--IF @lRes <> 0
-- RAISERROR(@lRes,11,1) WITH SETERROR
exec CB_IsRecordLock @table, @ress, @LOCK OUTPUT -- test si le document est toujours bloqué
IF @LOCK = 0
BEGIN
IF @spid = 0
BEGIN
print 'Ce document n''est pas bloqué'
break
END
DECLARE Qui CURSOR FOR
select nt_username from master..sysprocesses where spid=@spid
OPEN Qui
FETCH NEXT FROM Qui INTO @ress1
-- print @LOCK
-- print @spid
print 'Le Document '+@DO_Piece + ' bloqué par SPID:' + convert(varchar,@spid) + ' - Username:' + @ress1 + ' a été debloqué'
CLOSE Qui -- je ferme mon curseur
DEALLOCATE Qui -- je libère la mémoire allouée à ce curseur
break
END
set @spid=@spid+1
END
CLOSE myCursor -- je ferme mon curseur
DEALLOCATE myCursor -- je libère la mémoire allouée à ce curseur
- Posteur néophyte
- Messages: 4
- Inscription: Ven 20 Mai 2022 12:12
Re: comment connaitre l'utilisateur qui utilise un document
Qui peut m'aider svp c'est tres urgent pour moi?
- Posteur néophyte
- Messages: 4
- Inscription: Ven 20 Mai 2022 12:12
Re: comment connaitre l'utilisateur qui utilise un document
l'idée c'est de changé cette procedure avec une autre
EXECUTE @lRes = master..xp_CBUnLockRecord @spid,@lBase,@lTable, 3,@ress
si je peux changer xp_CBUnLockRecord vers CBisRECORDLOCK
ca va etre la solution que je voix
svp qui peut m'aider
EXECUTE @lRes = master..xp_CBUnLockRecord @spid,@lBase,@lTable, 3,@ress
si je peux changer xp_CBUnLockRecord vers CBisRECORDLOCK
ca va etre la solution que je voix
svp qui peut m'aider
- Posteur néophyte
- Messages: 4
- Inscription: Ven 20 Mai 2022 12:12
3 messages
|Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité