PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → duplication numéro en client serveur
duplication numéro en client serveur
Débuté par lolodev, 17 mar. 2018 19:02 - 7 réponses
Posté le 17 mars 2018 - 19:02
Bonjour,

j'ai une application qui tourne en C/S avec HFCS
1 application / client

lorsque l'utilisateur créé un nouveau élément, l'application génére un numéro constitué du n° AA +n° de semaine + incrément.
je viens de constaté que si sur 2 postes je clique sur nouveau en même temps, je peux avoir le même numéro d’élément sur les 2 postes !

quelle methode employée afin de bloquer celà ?? merci
Membre enregistré
24 messages
Popularité : +4 (6 votes)
Posté le 18 mars 2018 - 02:43
Bonjour,

Quelque chose de rapide sans changer grand chose :
on_recommence:
HAjoute("nom_du_fichier")
SI HErreurDoublon() ALORS
// changer le numéro d'incrémentation : +1
GOTO on_recommence
FIN


--
Logiciel iWeb, pour aider les professionnels du SEO/SMO : Impulse-web.com
Posté le 18 mars 2018 - 09:52
bonjour
merci
j'imagine plutôt un système de blocage...
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 18 mars 2018 - 13:50
Hello,

Le souci, c'est que bien souvent une erreur de doublon impose un hRéindexe.
En plus c'est tout bête, mais il n'y a pas de GOTO en Android, donc ça limite la ré-utilisabilité du code.

Pour faire ça proprement, tu t'arranges pour n'avoir qu'une seule procédure qui permet d'enregistrer un nouvel élément (POO, ou collection de procédures). Et tu encapsules ça dans une SectionCritique. Comme ça tu es certain que ton code ne sera jamais exécuté deux fois au même moment, le premier arrivé enregistre son élément, le deuxième est automatiquement mis en file d'attente le temps que le premier ait terminé.

C'est propre, et pas de risque d'erreur.

Cordialement,

Marc.
Membre enregistré
1 939 messages
Popularité : +53 (65 votes)
Posté le 18 mars 2018 - 15:22
Bonjour,

Suggestion : crée le numéro à la validation en bloquant l'enregistrement jusqu'au hAjoute.

--
Bon dev,
Jean-Pierre
Membre enregistré
3 889 messages
Popularité : +227 (347 votes)
Posté le 18 mars 2018 - 16:12
Bonjour,
Essaye de voir du côté de HbloqueFichier https://doc.pcsoft.fr/fr-FR/?3044153&name=HBloqueFichier
SI Non bloqué ALORS
On bloque
On traite
On débloque
SINON
On attend pour traiter
FIN


--
Il y a peut être plus simple, mais, ça tourne
Posté le 18 mars 2018 - 22:04
Le 18/03/2018 à 01:43, Olivier BLAIS a écrit :
on_recommence:
HAjoute("nom_du_fichier")
SI HErreurDoublon() ALORS
    // changer le numéro d'incrémentation : +1
    GOTO on_recommence
FIN



Plutôt comme ceci, c'est plus propre et concis :

BOUCLE
HAjoute("nom_du_fichier")
À FAIRE TANTQUE HErreurDoublon()
Posté le 19 mars 2018 - 08:12
merci à tous !
j'ai mis en place l'idée d'olivier et ça fcte bien
par contre, la solution de Marc, je ne connaissais pas.
mais je me demande si ça fcte pour une application client/serveur, avec l'exe par client. Le thread principal est celui de chaque client. Donc comment un client peut savoir qu'un autre client veut accéder au code critique. le code critique etant sur chaque poste client...

merci