Message de rapport:
 

Re: Problème de bloquage.

Sujet: Re: Problème de bloquage.
par ben-34 sur 13/6/2005 21:29:23

Voila:
//Daclarations globales
strBloque est une structure
sNomFic est une chaîne
nNbBloque est un entier
nNumEnr est un entier
FIN
gTstrBloque est un tableau de 0 strBloque


----------------------------------------------

PROCEDURE GLOBALE bBloqueEnr(LOCAL psNomFic est une chaîne)
nInd est un entier
bBloque est un booléen
bRetour est un booléen
nNumEnr est un entier

nNumEnr = HNumEnr(psNomFic)

nInd = TableauCherche(::gTstrBloque,tcLinéaire, "sNomFic;nNumEnr", psNomFic, nNumEnr)

SI nInd <> -1 ALORS
SI ::gTstrBloque[nInd]:nNbBloque = 0 ALORS
bBloque = Vrai
SINON
bBloque = Faux
FIN
::gTstrBloque[nInd]:nNbBloque++
SINON
nInd = TableauAjoute(::gTstrBloque)
::gTstrBloque[nInd]:nNbBloque = 1
::gTstrBloque[nInd]:sNomFic = psNomFic
::gTstrBloque[nInd]:nNumEnr = nNumEnr
bBloque = Vrai
FIN

SI bBloque ALORS
SI ::gTstrBloque[nInd]:nNbBloque = 1 ALORS

HBloqueNumEnr(psNomFic,::gTstrBloque[nInd]:nNumEnr,hBlocageEcriture)

SI PAS HErreurBlocage() ALORS
bRetour = Vrai
SINON
HErreur()
Info("Enregistrement bloqué par un autre poste.")
::gTstrBloque[nInd]:nNbBloque--
bRetour = Faux
FIN
FIN
SINON
bRetour = Vrai
FIN

POUR nInd = 1 A Dimension(::gTstrBloque)
SI ::gTstrBloque[nInd]:nNbBloque > 0 ALORS
SI PAS HBloqueNumEnr(::gTstrBloque[nInd]:sNomFic,::gTstrBloque[nInd]:nNumEnr,hBlocageEcriture) ALORS
SI EnModeTest() ALORS
Info("erreur bloquage : " + RC + HErreurInfo(hErrComplet))
FIN
FIN
SINON
TableauSupprime(::gTstrBloque,nInd)
FIN
FIN

RENVOYER bRetour


-------------------------------------------------


PROCEDURE GLOBALE bDebloqueEnr(LOCAL psNomFic est une chaîne)

nInd est un entier
nNumEnr est un entier

nNumEnr = HNumEnr(psNomFic)

nInd = TableauCherche(::gTstrBloque,tcLinéaire, "sNomFic;nNumEnr", psNomFic, nNumEnr)

SI nInd <> -1 ALORS
SI ::gTstrBloque[nInd]:nNbBloque > 0 ALORS

::gTstrBloque[nInd]:nNbBloque--

SI ::gTstrBloque[nInd]:nNbBloque = 0 ALORS
HDébloqueNumEnr(psNomFic,::gTstrBloque[nInd]:nNumEnr)
FIN
SINON
::gTstrBloque[nInd]:nNbBloque = 0
FIN
FIN

RENVOYER Vrai

Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2