|
HsynchroniseReplica ne fonctionne pas en test. |
Débuté par Mat, 19 mai 2013 12:50 - 5 réponses |
| |
| | | |
|
| |
Posté le 19 mai 2013 - 12:50 |
Bonjour, Je met en place une application sur PC et Smartphone Androïd avec une base de données HF Classic commune. Pour la synchronisation, les fonctions de replication n'étant pas disponible sous androïd, je tente de passer par un répertoire tampon lors de la connection du smartphone à l'application PC. [l'appli smartphone transfert la base dans ce répertoire, et ensuite l'appli PC gère la synchronisation]
Pour mes tests de synchronisation en mode dévelopement, j'ai créer un répertoire dans lequel j'ai placé mes fichiers "à vide" comme si ils provenaient de mon appli smartphone. J'ai pour le moment le code suivant :
ProcedureReplication() HGèreRéplication(rplRéplicationUniverselle)
sRepertoireBaseMaitre est unechaîne="C:\Mes projets\MonProjet\Exe\"
sReplicaMaitre est unechaîne=HCréeRéplicaMaître(sRepertoireBaseMaitre)
sRepertoireBaseAbonné est unechaîne="X:\SynChro"
sReplicaAbonné est unechaîne=HCréeRéplicaAbonné(sRepertoireBaseMaitre,sRepertoireBaseAbonné,"Smartphone")
HCréeRéplicaTransportable(sRepertoireBaseMaitre+"ReplicaMaitre.rpm",sReplicaAbonné,"")
HSynchroniseRéplica(sRepertoireBaseMaitre+"To_Smartphone_001.rpa",sRepertoireBaseAbonné+sReplicaAbonné,rplVersAbonné)
J'ai bien à la suite de ce code la création de tous les fichiers (.RPM .RPL .SYN et .RPA) dans les bons répertoires.
La fonctionHsynchoniseReplica() ne m'envoie pas les données de la base maître vers la base abonnée.
Est ce que j'ai fait une erreur ? Manque t-il quelques chose ?
>En vous remerciant. |
| |
| |
| | | |
|
| | |
| |
Posté le 20 mai 2013 - 11:56 |
Bonjour, Jai une erreur après le Hsyncrhonise (apparement) : "la description de réplica n'a pas été trouvé" Dans mon code j'ai aussi essayé en utilisant la constante RPL.Fichier et j'ai la même erreur. Voici mon code que j'ai modifié de nombreuse fois....
sRepertoireBaseMaitre est unechaîne="C:\Mes projets\MonProjet\Exe\"
HGèreRéplication(rplRéplicationUniverselle)
sReplicaMaitre est unechaîne=HCréeRéplicaMaître(sRepertoireBaseMaitre)
sRepertoireBaseAbonné est unechaîne="X:\SynChro\"
sReplicaAbonné est unechaîne=HCréeRéplicaAbonné(sRepertoireBaseMaitre,sRepertoireBaseAbonné,"Smartphone")
HCréeRéplicaTransportable(sRepertoireBaseMaitre+"ReplicaMaitre.rpm","Smartphone","") fCopieFichier(sRepertoireBaseMaitre+"To_Smartphone_001.rpa",sRepertoireBaseAbonné)
HSynchroniseRéplica(sRepertoireBaseAbonné+"To_Smartphone_001.rpa",sRepertoireBaseAbonné+sReplicaAbonné,rplVersAbonné) Erreur("Erreur HyperFileSQL : "+HErreurInfo())
HCréeRéplicaTransportable(sRepertoireBaseAbonné+"Replica_Smartphone.Rpl","Smartphone","") fCopieFichier(sRepertoireBaseAbonné+"From_Smartphone_001.rpa",sRepertoireBaseMaitre)
HSynchroniseRéplica(sRepertoireBaseAbonné+"From_Smartphone_001.rpa",sRepertoireBaseAbonné+sReplicaAbonné,rplVersMaître) > |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 6 messages |
|
Posté le 20 mai 2013 - 18:35 |
Je poursuis mes tests, j'ai complété mes procédures précédement postée en rajoutant 2 connexions ( comme dans l'exemple fournit).
j'ai l'erreur suivante au moment deHSynchroniseRéplica() :
Dump de l'erreur du module 'wd180vm.dll' (18.0.132.0). Identifiant des informations détaillées (.err) : 1020 Informations de débogage :
Détails techniques :
Module : wd180rpl.dll Version du module : 18.0.8.0 VI : 01F180056f Adresse de base : 28E60000 Erreur système : Access violation (GPF) EIP = 28E88FF0 OS : Windows XP ou .NET Service Pack 3(5.1.2600) Registres :
EIP = 28E88FF0 EBP = 0012E470 EAX = 000000FA EBX = 0012E3FC ECX = 00000001 EDX = 00380608 ESI = 02FFAFFD EDI = 05F55194
Pile des appels :
[wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E823AD : Execution() + 27715 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 39932 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 36296 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 19060 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 19081 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 19081 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 19081 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 19081 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 19081 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 18804 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E6F050 : bTestBits() + 16492 bytes [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E62DF5 [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E62921 [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E62813 [wd180rpl.dll (28E60000), 18.0.8.0, 01F180056f] 28E823AD : Execution() + 48443 bytes [wd180vm.dll (25E60000), 18.0.132.0, 01F180056f] 25F73420 : InfoVersionWeb() + 573788 bytes [wd180vm.dll (25E60000), 18.0.132.0, 01F180056f] 260D6C98 [wd180vm.dll (25E60000), 18.0.132.0, 01F180056f] 25EE2DB0 : EXT_bSetVariableCollection() + 361888 bytes [wd180vm.dll (25E60000), 18.0.132.0, 01F180056f] 25EA06E0 : Execution() + 79776 bytes [wd180vm.dll (25E60000), 18.0.132.0, 01F180056f] 25EE2DB0 : EXT_bSetVariableCollection() + 191840 bytes [wd180vm.dll (25E60000), 18.0.132.0, 01F180056f] 25F73420 : InfoVersionWeb() + 573312 bytes
Informations supplémentaires : EIT_PILEWL : Procédure globale Replication (Procedures globales de CéréaScop-V2.Replication), ligne 27 EIT_DATEHEURE : 20/05/2013 18:17:48
>Si qqun avait une idée ou j'envoie au support technique ? En vous remerciant |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 6 messages |
|
Posté le 20 mai 2013 - 21:54 |
Je poste le code qui me renvoie l'erreur précédement citée : (j'ai finalement enlevé les connexions qui ne changent rien au problème)
ProcedureReplication()
sRepertoireBaseMaitre est unechaîne="C:\Mes projets\CéréaScop-V2\Exe\" sRepertoireBaseAbonné est unechaîne="X:\SynChro\" sRepertoireTransfert est unechaîne="C:\TestTransfert\" HGèreRéplication(rplRéplicationUniverselle)
sReplicaMaitre est unechaîne=HCréeRéplicaMaître(sRepertoireBaseMaitre)
sReplicaAbonné est unechaîne=HCréeRéplicaAbonné(sRepertoireBaseMaitre,sRepertoireBaseAbonné,"Smartphone")
HCréeRéplicaTransportable(sRepertoireBaseMaitre,"Smartphone","")
fCopieFichier(sRepertoireBaseMaitre+RPL.Fichier,sRepertoireTransfert)
HSynchroniseRéplica(sRepertoireTransfert+RPL.Fichier,sRepertoireBaseAbonné,rplVersAbonné)
HCréeRéplicaTransportable(sRepertoireBaseAbonné+"Replica_Smartphone.rpl","Smartphone","") fCopieFichier(sRepertoireBaseAbonné+RPL.Fichier,sRepertoireTransfert)
HSynchroniseRéplica(sRepertoireTransfert+RPL.Fichier,sRepertoireBaseAbonné+sReplicaAbonné,rplVersMaître) >Message modifié, 20 mai 2013 - 21:56 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 6 messages |
|
Posté le 21 mai 2013 - 16:05 |
Bonjour, après de très nombreux tests, je suis parvenu à faire une synchro (presque bien) en passant par un répertoire "tampon". Je ré-explique globalement.
1- L'objectif est de synchroniser (via USB) une appli smartphone ANDROID avec une appli version PC. Il y a donc une BDD identique Commune. 2- Les fonctions HF de réplication ne sont pas disponible sous Androïd, c'est donc l'application PC qui gère la synchronisation. 3- j'ai écrit une procédure de réplication en utilisant la réplication universelle (comme si il y avait 2 BDD différentes). Lors de la connexion du smartphone via USB, l'application PC copie la BDD du smartphone dans un répertoire local, puis j'execute la procedure de replication (exactement du principe de l'exemple WD Replication Universelle de Windev)
J'ai donc repris tout depuis le départ, replacé des connexions pour différencier les emplacements.
Mais surtout j'ai tester sur un PC en windows 7 plus performant... (le premier était en XP et provoque une erreur fatal GPF Access Violation encore inexpliquée pour moi).
j'ai 8 fichiers dont 2 entre 12000 et 60 000 enregistrements. (il manque environ 2000 enregistrements qui sont en fait des doublons dans la base maitre que je n'ai pas encore supprimé)
Qqun saurait il si cela est "normal" ?
Dernière procedure fonctionnant :
ProcedureReplication() sRepertoireBaseMaitre est unechaîne="C:\Mes projets\CéréaScop-V2\Exe\" sRepertoireBaseAbonné est unechaîne="C:\SynChro\" sRepertoireTransfert est unechaîne="C:\TestTransfert\" HGèreRéplication(rplRéplicationUniverselle)
HDécritConnexion("ConnexionPC","","",sRepertoireBaseMaitre,"",hAccèsHF7) HDécritConnexion("ConnexionSmartphone","","",sRepertoireBaseAbonné,"",hAccèsHF7)
HOuvreConnexion("ConnexionPC") HChangeConnexion("*","ConnexionPC") sReplicaMaitre est unechaîne=HCréeRéplicaMaître(sRepertoireBaseMaitre)
sReplicaAbonné est unechaîne=HCréeRéplicaAbonné(sRepertoireBaseMaitre,sRepertoireBaseAbonné,"Smartphone")
HCréeRéplicaTransportable(sRepertoireBaseMaitre,"Smartphone","") fCopieFichier(sRepertoireBaseMaitre+RPL.Fichier,sRepertoireTransfert)
HOuvreConnexion("ConnexionSmartphone") HChangeConnexion("*","ConnexionSmartphone") HSynchroniseRéplica(sRepertoireTransfert+RPL.Fichier,sRepertoireBaseAbonné,rplVersAbonné)
HCréeRéplicaTransportable(sRepertoireBaseAbonné+"Replica_Smartphone.rpl","Smartphone","") fCopieFichier(sRepertoireBaseAbonné+RPL.Fichier,sRepertoireTransfert)
HOuvreConnexion("ConnexionPC") HChangeConnexion("*","ConnexionPC") HSynchroniseRéplica(sRepertoireTransfert+RPL.Fichier,sRepertoireBaseAbonné+sReplicaAbonné,rplVersMaître) >Message modifié, 21 mai 2013 - 16:13 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 messages |
|
Posté le 19 mars 2020 - 03:52 |
Bonjour j'ai un difficulte pour effectuer une replication je suis debutant. mais j'ai une erreur a la fin que je n'arrive pas a savoir ou resourdre. je n'arrive pas a deployer le server de replication. j'ai pplusieurs fichiers a repliquer. mais j'ai eu tjrs le meme type d'erreur.
est ce que quelqu'un peut m'aider stp.
>merci deja |
| |
| |
| | | |
|
| | | | |
| | |
|