Bonjour à tous,

cela doit faire maintenant deux semaines que j'essaie de mettre en place une réplication universelle en utilisant des fichiers de type hyperfileSQL client/Serveur. Cette réplication doit se faire entre 2 bases distantes hyperfileSQL client/Serveur.

Je me suis aidé de l'aide WinDev et d'un exemple fourni par un membre de developpez.net. Malheureusement quand je synchronise quelques uns de mes fichiers, je perds des données (effacées ou non ajoutées).

Voici la structure de mes fichiers qui posent problème :

- Contact.FIC => 2 clés uniques : id_contact (id auto.) + email
- Company.FIC => 2 clés uniques : id_company (id auto.) + companyName

Auriez vous des conseils à me donner ?

Voici le début de mon code concernant la réplication :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
HGèreRéplication(rplRéplicationUniverselle)

// si les repertoire "abonné" + "maître" n'existent pas, on les crée
SI fRépertoireExiste(repertoireMaitre) = Faux ALORS
	
	fRepCrée(repertoireMaitre)
	
	// Création du réplica maitre 
	SI HCréeRéplicaMaître(repertoireMaitre) = Faux ALORS 
		FinProgramme("Echec de création du réplica maître." +RC+
                HErreurInfo(hErrMessage))
	FIN
FIN


SI fRépertoireExiste(repAbonné) = Faux ALORS
	
	fRepCrée(repAbonné)
        // Création du réplica abonné 
        SI HCréeRéplicaAbonné(repertoireMaitre, repAbonné, sIdentifiantAbonné, 0) = Faux ALORS
		FinProgramme("Echec de création du réplica abonné." +RC+  
                 HErreurInfo(hErrMessage))
       FIN
FIN



//***************************************************************************************
// PREMIERE SYNCHRO (celle-ci doit être effectuée obligatoirement lors de la toute première synchronisation)											*
// création du réplica Transportable à partir du maître pour stocker les données sur l'abonné	*
// puis synchronisation																		*
//***************************************************************************************

HOuvreConnexion(connexionMaitre)
HChangeConnexion("*", connexionMaitre)	

SI HCréeRéplicaTransportable(sRéplicaMaitre,sIdentifiantAbonné,"") ALORS

	HOuvreConnexion(connexion_abonnne)
	HChangeConnexion("*",connexion_abonnne)	
	HGèreDoublon(Company,CompanyName,Faux)
	sRéplicaTRansportable = repertoireMaitre + RPL.Fichier
		
		// synchronisation du réplica
	SI HSynchroniseRéplica(sRéplicaTRansportable, sRéplicaAbonné, rplVersAbonné) ALORS
					
	// Suppression du réplica transportable qui ne sera plus utilisé
		fSupprime(sRéplicaTRansportable)
			
	SINON
		FinProgramme("Echec de synchronisation.", ErreurInfo())
	FIN
SINON 
	Erreur("Echec de création du premier réplica Transportable",ErreurInfo())
		
FIN