PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Replication hyperfile
Replication hyperfile
Débuté par Albert wagner, 18 nov. 2005 15:54 - 3 réponses
Posté le 18 novembre 2005 - 15:54
Bonjour,

Je ne m'en sors pas...

Après avoir fait une recherche ici même, j'ai tenté de mettre en place l'exemple de la LST61, mais en fait, celà ne corresponds pas vraiment à ce que je veux faire qui est bien plus simple que çà.

J'ai une base de contacts installée de façon partagée sur un serveur de fichier. Seulement, je souhaiterai pouvoir "emmener" ces données sur les ordinateurs portables.
En gros:
1. Ordinateur connecté au réseau alors on utilise la base partagée
2. Ordinateur non conencté au réseau, on utilise la base locale
3. Ordinateur se connecte au réseau, on réplique entre les 2 bases

Je me suis dit qu'il allait être très simple de faire çà et en fait celà ne l'est pas du tout, ou alors je m'y prends "HyperMal"...

Est-ce que quelqu'un pourrait m'expliquer une démarche simple (à moins que la réplication soit une des choses compliquées qui restent à mettre en oeuvre en Windev) pour réaliser çà.
La partie replication simploement, le reste c'est fait ;)

Merci d'avance
Posté le 20 novembre 2005 - 01:23
Bonjour Albert,

Je suis dans le meme cas que toi.
Mais je suis confronté a un autre problème. Ceci dit j'ai developpé une appli light qui reproduit sur une table client ce que l'on cherche a faire.

A savoir : nous avons 2 applications identiques executés sur deux postes sur un meme réseau. Chaque application possede sa propre base en locale.

L'une des applications est dite maitre - La seconde sera l'abonné (portable)
l'abonné se connecte sur la base maitre (partagée) pour travailler.
Si l'abonné se deconnecte du réseau (il bascule sur sa base locale), qu'il saisie des données sur sa base locale, et qu'il souhaite la mettre a jour a sa reconnexion sur la base maitre, on execute une replication.

si ton cas est identique, je peux te faire parvenir mon exemple afin que de ton coté tu puisse regarder comment cela fonctionne.
Mais une erreur est genere au moment d ela replication. Peut etre que tu trouveras une solution et que tu pourras a ton tour m'aider.

Envoi moi ton mail sur l'adresse suivante : berdeaux.f@wanadoo.fr
Objet : pb replication sur forum WD

Je te ferai parvenir le code de l'appli.
Posté le 25 novembre 2005 - 15:45
Merci de la proposition, mais j'ai aussi essayé de tester çà sur un truc simple:

1 fichier contenant 3 champs (identifiant auto, nom, prenom)
1 fenetre contenant 2 boutons:
bouton1: lance la replique
bouton2: passe de mode "maitre" en mode "abonné"

- Les fichiers des replicas se créent bien dans les bons répertoires

Problèmes:
- Lorsque je clique sur le bouton replique, j'ai un message comme quoi tout s'est bien passé, mais en fait il ne se passe rien.
- le "Info" de la procédure filtre replica ne s'affiche qu'une fois (6 enregistrements dans la base) et les variables sont vides ou à 0.

Différents Codes indiqués ci-dessous:

Je ne sais plus ou chercher ce que je fais de travers...

--------------------------
Code initialisation du projet:
--------------------------

gsRepMaitre est une chaîne = "C:\Mes Projets\Test Replication\res\"
gsRepLocal est une chaîne = "C:\Mes Projets\Test Replication\loc\"

HCréeRéplicaMaître(gsRepMaitre)
HCréeRéplicaAbonné(gsRepMaitre,gsRepLocal)

-------------------------------------
Code du bouton "maitre/abonné"
-------------------------------------
SELON OuiNon("Mode maitre?: OUI","Mode abonné: NON")
CAS Non:
HChangeRep("*",gsRepLocal)
CAS Oui:
HChangeRep("*",gsRepMaitre)
AUTRES CAS :
FinProgramme
FIN
SI PAS HCréationSiInexistant(Fichier) ALORS Info("Impossible de créer ou d'initialiser l'accès au fichier : Fichier",HErreurInfo())



---------------------------------
Code du bouton "replique"
---------------------------------
SI HSynchroniseRéplica(gsRepMaitre,gsRepLocal, rplBidirectionnel, FiltreReplica) ALORS
Info("Réplication effectuée")
FIN


------------------------
Procedure filtrereplica
------------------------
PROCEDURE FiltreReplica()

Info("SRC:"+RPL.AliasSource,"","Dest: "+RPL.AliasDestination,"","Fic: "+RPL.Fichier,"","MaxOP: "+RPL.MaxOperation,"","OP: "+RPL.Opération,"","Sens: "+RPL.Sens)
RENVOYER Vrai
Posté le 30 novembre 2005 - 11:52
Bon, j'avais oublié le hgerereplicaiton(vrai) ...

Par contre, celà ne fonctionne quand même pas. J'ai une erreur de doublon.

Dans le fichier maitre, j'ai 5 enregistrements (ID automatique 1 à 5) dans le fichier abonné, je crée 2 enregistrements (ID automatique 1 et 2) et lors de la réplication, j'ai une erreur m'indiquant que la clef unique "1" existe déjà dans la base maitre...