Problème de bloquage.
DSI WDF
Inscrit:
15/03/2005 14:22
Post(s): 238
si j'utilise la fonction HBloqueNumEnr, je bloque bien mon enregistrement.
si je réutilise HBloqueNumEnr sur un autre fichier sans avoir débloqué mon enregistrement du 1er fichier, ce dernier est automatiquement débloqué.

Comment peut on avoir 2 enregistrements bloqué sur 2 fichiers?

Contribution le : 11/06/2005 15:48
Créer un fichier PDF de la contribution Imprimer


Re: Problème de bloquage.
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Ce phenomène me parrait anormale car il doit exister un pointeur et un contexte par fichier.
Par conséquent deux pointeurs dans deux contextes différents l'un ne doit pas empiéter sur l'autre.

Cela mettrait en danger la construction d'application MDI.

Ou bien votre code est mit en cause, ou alors il existe un réelle problème qui je pense aurait été soulevé depuis fort longtemps.

Tests à réaliser....

Quel type de fichier utilisez vous ?

Contribution le : 13/06/2005 10:26
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Problème de bloquage.
DSI WDF
Inscrit:
15/03/2005 14:22
Post(s): 238
C'est du HF.
J'ai trouvé une solution palliative, qui fonctionne (aprés quelques tests).
J'envoi le code ce soir pour ceux qui le désirent.

Contribution le : 13/06/2005 10:44
Créer un fichier PDF de la contribution Imprimer


Re: Problème de bloquage.
DSI WDF
Inscrit:
15/03/2005 14:22
Post(s): 238
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

Contribution le : 13/06/2005 21:29
Créer un fichier PDF de la contribution Imprimer


Re: Problème de bloquage.
Stagiaire WDF
Inscrit:
26/05/2005 12:21
Post(s): 21
@ben-34 et drcharly93
Bonsoir,

Je pense que la variable "psNomFic" membre de la structure (TABLEAU) "gTstrBloque" se comporte comme une instance d'une classe.

Parce que si c'est le cas je cite :

Citation :
Une variable de type tableau ou un objet (instance d'une classe) ne peut pas devenir locale à une procédure.


J'espère que c'est une idée dans le bon chemin.

Bonne Chance

Contribution le : 13/06/2005 23:54
_________________
//**//
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


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