Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gros problème : réseau C/S

6 réponses
Avatar
Paul
Bonjour,

J'ai une appli en C/S qui utilise le meme serveur, la meme base. 5 postes
sont installés.

Le gros problème est que lorsqu'un utilisateur modifie une fiche article,
par exemple, les autres ordinateurs ne voient pas cette modification
lorsqu'ils ouvrent à leur tour ladite fiche... Un comble pour une
application en réseau !

L'utilisateur est donc obligé de quitter l'appli puis la relancer pour avoir
les données mises à jour.

Pouvez-vous m'aider car là je n'y comprends plus rien !
Je précise que sur le réseau de mon entreprise, les données s'affichent en
temps réel avec les modifications.

Cdt.

6 réponses

Avatar
Francis DUHAUT
Windev n'a rien à voir la dedans. Il suffit de programmer correctement. Tu
utilises peut être des requetes non actualisées ?

Dans ce cas tu peux utiliser des timer qui vont te rafraichir tes tables
régulièrement si les fichiers ont été modifiés.

Bouquine un peu les manuels et tout ira mieux.

@+

"Paul" a écrit dans le message de news:
45b9fd70$0$31432$
Bonjour,

J'ai une appli en C/S qui utilise le meme serveur, la meme base. 5 postes
sont installés.

Le gros problème est que lorsqu'un utilisateur modifie une fiche article,
par exemple, les autres ordinateurs ne voient pas cette modification
lorsqu'ils ouvrent à leur tour ladite fiche... Un comble pour une
application en réseau !

L'utilisateur est donc obligé de quitter l'appli puis la relancer pour
avoir les données mises à jour.

Pouvez-vous m'aider car là je n'y comprends plus rien !
Je précise que sur le réseau de mon entreprise, les données s'affichent en
temps réel avec les modifications.

Cdt.



Avatar
Paul
Bonsoir Francis,

Comme je l'ai indiqué dans mon post, les tests effectués sur mon réseau ne
soulèvent aucun problème.

C'est uniquement sur le réseau de notre filiale que cela se produit...

Comment pouvez-vous donc dire que c'est une mauvaise programmation ?

Cordialement.

PG
Avatar
Francis DUHAUT
Bonjour,

Je dis cela car une appli HF C/S (comme une HyperFIle classique) nécessite
quand même des synchros si il y a plusieurs utilisateurs.
Donc tout dépend de la façon dont cela est codé.
Ma plus grosse appli fait environ 70 tables, 190 fenetres, 52 machines en HC
C/S + des connexions VPN par moment. Pas de pb.
Pour ma part, je trouve HC C/S stable. Les pb que j'ai pu rencontré étaient
souvent du à mon code.

Afin d'y voir plus clair, donnez-nous des exemples précis ainsi que la
méthode utilisée pour "pusher" les données. En C/S , il faut utiliser un max
les requete, bloquer les fiches en cours de modif, bien se positionner sur
les enregistrements etc...

Cordialement,

"Paul" a écrit dans le message de news:
45ba864e$0$23042$
Bonsoir Francis,

Comme je l'ai indiqué dans mon post, les tests effectués sur mon réseau ne
soulèvent aucun problème.

C'est uniquement sur le réseau de notre filiale que cela se produit...

Comment pouvez-vous donc dire que c'est une mauvaise programmation ?

Cordialement.

PG



Avatar
Paul
Bonjour Francis,

Merci de votre réponse.
Voici le code d'initialisation de la fenetre CLIENT :

HLitRecherche(Clients,CodeClient,pCodeClient)

SI HTrouve(Clients) ALORS

FichierVersEcran(client_PRO_fiche,Clients)

client_PRO_fiche..Titre=Clients.RaisonSociale+" - "+Clients.Nom+"
"+Clients.Prénom


ValTrouve est un entier =
ListeCherche(Combo_CalculEcheance,clients.DelaiReglement)

SI ValTrouve<>-1 ALORS

ListeSelectPlus(Combo_CalculEcheance,ValTrouve)

FIN

FIN
Avatar
Francis DUHAUT
Jusque la, ce code semble Ok que ce soit en HF C/S ou classique.

Il est clair que si 2 utilisateurs ouvrent la même fenetre au même moment
pour faire une modif, il faudra mettre en place un blocage. Il est assez
facile ensuite d'intercepter si l'enregistrement est bloqué et avertir
l'utilisateur qu'il travail en mode "Lecture". Un petit timer en tache de
fond (toutes les xx secondes) vous permettra de rafraichir vos données pour
l'utilisateur en Lecture et de tester si le blocage est toujours actif.

Par contre ce code sera lent en connexion distante. Il est préférable d'
utiliser une requete pour récupérer ou mettre à jour les données afin
d'éviter les A/R au niveau serveur. Il existe un outil comme NetLimiter qui
vous permettra de 'brider' votre bande passante sur votre LAN afin de tester
les perfs de votre application et de voir les points ou ça rame.

SLts,

"Paul" a écrit dans le message de news:
45bb14b3$0$22788$
Bonjour Francis,

Merci de votre réponse.
Voici le code d'initialisation de la fenetre CLIENT :

HLitRecherche(Clients,CodeClient,pCodeClient)

SI HTrouve(Clients) ALORS

FichierVersEcran(client_PRO_fiche,Clients)

client_PRO_fiche..Titre=Clients.RaisonSociale+" - "+Clients.Nom+"
"+Clients.Prénom


ValTrouve est un entier =
ListeCherche(Combo_CalculEcheance,clients.DelaiReglement)

SI ValTrouve<>-1 ALORS

ListeSelectPlus(Combo_CalculEcheance,ValTrouve)

FIN

FIN




Avatar
Paul
Merci beaucoup.
Tout est parfaitement clair !
Bonne continuation.