PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → HBloqueNumEnr() sur un record déjà bloqué dans un parcours suite à un HFiltre()
HBloqueNumEnr() sur un record déjà bloqué dans un parcours suite à un HFiltre()
Iniciado por Julien, 18,jun. 2020 17:58 - No hay respuesta
Miembro registrado
18 mensajes
Publicado el 18,junio 2020 - 17:58
Bien le bonjour,

Je suis sur un projet où je dois gérer plusieurs instances d'une application qui doivent lire des records d'un fichier, et chaque instance doit bloqué leur record en lecture. Afin que toutes les instances travaillent sur des records différents (très important).

Malheureusement, suite à des tests et lecture de l'aide, je remarque que quand je parcours mon fichier, et que je détecte une ligne déjà bloquée par une autre instance, impossible de faire un HLitSuivant().

Je ne comprends pas pourquoi PCSoft empêche de bypasser ce record bloqué pour continuer le parcours.

Avez-vous une solution ?
Grand merci d'avance.


Voici un bout de mon code :
HDésactiveFiltre( SMS_Envoi )
CléParcours = HFiltre( SMS_Envoi , " Envoyé = '0' " )

HLitPremier( SMS_Envoi , CléParcours )
TANTQUE HEnDehors() = Faux

bSMS_Envoyé = Faux

SI gbThread_Stop = Vrai ALORS
gbThread_Actif = Faux
SORTIR
FIN

SI HErreurBlocage() = Vrai ALORS
// InfoLock est une chaine = HInfoBlocage( SMS_Envoi , Hnumenr(SMS_Envoi) )
// Lock_User est une chaine = extraitchaine(InfoLock, 3, TAB)
// Lock_Application est une chaine = Extraitchaine(InfoLock, 6, TAB)
// erreur("L'enregistrement est bloqué par " + Lock_User + " (" + Lock_Application + ").")
SINON
SI HBloqueNumEnr( SMS_Envoi , HNumEnr(SMS_Envoi) , hBlocageEcriture ) = Vrai ALORS
...
// MON TRAITEMENT
...

SI PAS HDébloqueNumEnr( SMS_Envoi , hNumEnrEnCours ) ALORS
Erreur( "Impossible de débloquer l'enregistrement." +RC+RC+ "ID = "+ SMS_Envoi.ID_SMS_Envoi +RC+RC+ HErreurInfo(hErrMessage) )
FIN

SINON
Info("blocage PAS OK" +RC+RC+ HErreurInfo(errMessage) )
InfoLock est une chaîne = HInfoBlocage( SMS_Envoi , HNumEnr(SMS_Envoi) )
Lock_User est une chaîne = ExtraitChaîne(InfoLock, 3, TAB)
Lock_Application est une chaîne = ExtraitChaîne(InfoLock, 6, TAB)
Erreur("L'enregistrement est bloqué par " + Lock_User + " (" + Lock_Application + ").")
FIN
FIN

HLitSuivant( SMS_Envoi , CléParcours )
FIN