IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

[windev11][Débutante] replication bidirectionelle,universelle


Sujet :

WinDev

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    hello...

    Je me lance dans la réplication, j'ai un peu de mal à intégrer tout cela!
    Il me faut une replication bidirectionnelle.
    Déjà je m'interroge comment il fait pour gérer les identifiants lorsqu'il eu ajout sur le maitre et l'abonné.

    Les identifiants des elements ajoutés sur le maitre sont conservé et tous les autres ajoutés sur l'abonné sont mis a niveau lors de la synchronisation?
    Par exemple:
    On a ajouté un bien,des detailBien(detailbien.idDetailBien - detailbien.idbien - bien.idbien), donc apres la replication va modifier les identifiants des clefs premieres ,repercuter la modification sur toutes les clefs etrangeres et tout et tout?

    J'espere que vous me comprenez, moi j'ai deja du mal avec moimeme!!

    Et qu'elle est le différence avec la replication universelle et bidirectionelles? La replication universelle peut se faire dans les deux sens egalement,non??

    Bon j'ai vu que toto avait posté un super sujet la-dessus, j'ai pas tout décortiqué encore mais j'aurais voulu avoir qq précisions sur des bases qui doivent certainement etre fondamentale!!!

    merci bcp pour ton code!

    À ce propos Toto42, est-ce que ta réplication est bidirectionelle?
    Pourrais-tu m'expliquer pourquoi tu as créer 3 réplications et pas qu'une seule?
    réplication bidirectionnelle et universel c'est la meme chose?
    J'ai du mal à saisir la différence.

    merci
    nath

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 20
    Points
    20
    Par défaut Réponse
    Bonjour Nath,

    je ne suis pas vraiment spécialiste de la réplication, j'espère que je ne dirai pas trop de bêtises :

    En fait je crée 3 boutons qui chacun a une fonction bien précise dans le processus de réplication.
    Le premier sert à initialiser le réplica maitre, c'est à cliquer une seule fois dans toute la vie de la réplication, à moins qu'on soit obligé de tout regénérer.
    Le deuxième bouton sert à déclarer le réplica abonné. Si tu crée ce code sur chaque abonné il y a possibilité de définir autant d'abonné que tu veux, en modifiant l'identifiant de l'abonné (chaine de caractères)
    Le 3e bouton sert à effectuer la réplication en elle même au fil des jours, c'est sur ce dernier bouton qu'il faut cliquer pour répliquer tes 2 bases. Les deux premiers servent une seule fois pour initialiser la réplication.

    Ce que je crois avoir compris c'est que la réplication bidirectionnelle veut dire dans les 2 sens (rien à voir avec universelle). Je me suis rendu compte d'après mes appels au support technique gratuit c'est que pour eux, si tu répliques une fois dans un sens (rplversMaitre et rplversAbonné) c'est en quelque sort une réplication bidirectionnelle. Il existe une constante aussi pour faire une vraie réplication bidirectionnelle, mais je ne suis jamais arriver à comprendre comment ça marchait.

    Pour la réplication universelle, c'est en fait une réplication au départ destinée pour des bases hétérogènes (HF + oracle par exemple), mais on m'a conseillé la réplication universelle car elle marche bien même pour deux bases HF. La réplication journalée, c'est l'autre possibilité : elle, utilise des fichiers de journaux (JNL) et il faut déclarer cette option dans chaques tables de ton analyse, c'est plus lourd.

    Si tu regardes le code, je déclare une réplication universelle, et dans la pratique, je la fais dans les 2 sens, donc elle est bidirectionnelle...

    J'espère t'avoir aidé.
    Bonne journée,
    Toto42

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    merci pour ton explication mais il demeure encore qq incompréhensions!

    Quelle est la différence entre une vraie réplication bidirectionnelle et ce que tu as fait?
    car en regardant ton code de :
    4. Code Bouton Réplication dans les 2 sens (à chaque fois qu'on veut répliquer) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI HSynchroniseRéplica(sRéplicaMaitre,sRéplicaTRansportable,rplVersMaître,rplPlusRécentPrioritaire) ALORS
    		Sablier(Faux)
    		Multitâche(-500)
    rplPlusRécentPrioritaire signifie bien que si l'abonné a fait des modifications, elle seront repercutées sur le maitre? Et vice-versa.La réplication est donc bien dans les deux sens?
    C'est pas cela bidirectionnel?
    Ou peut etre que le terme de bidirectionnel signifie que :
    //-----------------------------------------------------------
    // synchronisation de l'ABONNE avec les données du MAITRE |
    //-----------------------------------------------------------
    code...
    et
    //--------------------------------------------------
    // synchronisation du MAITRE avec les données de l'ABONNE
    //--------------------------------------------------
    code...

    constitue une seule opération?
    Et qu'au lieu de cela tu aurais:
    //--------------------------------------------------
    // synchronisation du MAITRE et de l'ABONNE
    //--------------------------------------------------
    code...

    Pour que ta replication fonctionne, il faut que le commercial se connecte au réseau?
    Il ne suffit pas de copier le "sRéplicaTRansportable " sur une cle usb depuis le maitre pour le copié ensuite sur l'abonné et vice versa?

    Autre question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HGèreIntégrité("*","*",hCardinalité+hEnModification+hEnSuppression,Faux)
    Pourquoi as tu désactivé la gestion des intégrités?
    Si l'abonné a ajouté des données, on ne risque pas d'avoir une base pas tres intègre????
    Et que se passe t'il si le maitre a supprimé le client MARTIN le 1 avril et que l'abonné a ajouté une commande au client MARTIN le 2 avril?
    Le client MARTIN est réactulisé? Mais avec son ancien identifiant ou avec un nouveau?
    ET si le client a ajouté une commande au client MARTIN le 30 mars? La commande est perdue?
    En supposant qu'on ait activé la constante :rplPlusRécentPrioritaire !
    HSynchroniseRéplica(sRéplicaMaitre,sRéplicaTRansportable,rplVersMaître,rplPlusRécentPrioritaire)


    La réplication se clarifie un chouia pour moi mais c'est encore pas mal le b.... dans ma tete!!!

Discussions similaires

  1. [WD17] Replication universelle HCréeRéplicaTransportable problème
    Par draco951 dans le forum WinDev
    Réponses: 0
    Dernier message: 03/05/2012, 11h59
  2. [WD14] Aide Replication Universelle
    Par david77320 dans le forum WinDev
    Réponses: 24
    Dernier message: 19/02/2010, 12h47
  3. [WD14] Replication universelle
    Par shadowking91 dans le forum WinDev
    Réponses: 2
    Dernier message: 23/06/2009, 22h26
  4. [windev11] Replication et autres documents
    Par nath-0-0 dans le forum WinDev
    Réponses: 13
    Dernier message: 12/06/2008, 10h08
  5. [WinDev11] Débutant aide sur HFiltre
    Par Bowen dans le forum WinDev
    Réponses: 4
    Dernier message: 02/10/2007, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo