1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

AIDE Comment transférer des enregistrements entre deux bases sur hyperfile client/serveur?

Discussion dans 'Base de donnés & HFSQL' créé par kabeda, Août 29, 2018.

  1. kabeda

    kabeda Active Member

    Inscrit:
    Avr 23, 2018
    Messages:
    173
    J'aime reçus:
    63
    Bonjour,
    J'ai une base de données avec plusieurs tables sur un serveur HFSQL. Je désire récupérer les enregistrements d'une table (EMPLOYES) à partie de la baseA vers une autre table (EMPLOYES) sur la baseB sur le même serveur en ne récoltant que certains champs.
    Je sais le faire en HFSQL classic avec le Halias et compagnie mais je me perds avec cette histoire de connexions.
    Pour plus d'explications, j'avais mis au point une ancienne application de gestion de personnel où la table EMPLOYES contient toutes les infos de chaque employé. Je suis entrain d'élaborer un autre programme qui utilise aussi une liste d'employés mais avec d'autres rubriques. Donc, je ne dois pas toucher à l'ancienne table mais créer une nouvelle et je ne me vois pas ressaisir les infos de tous les employés.
    Merci.
     
    Tags:
    rayan apprécie ceci.
  2. charlie

    charlie Active Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    201
    J'aime reçus:
    190
    Va voir là
    HCopieEnreg (Fonction)
    *****
    après t'être connecté...
    *******
    un exemple

    HLitPremier(EMPLOYES, EMPLOYES2)
    TANTQUE HEnDehors(EMPLOYES) = Faux
    // Ajoute l'enregistrement dans le fichier EMPLOYES2
    HCopieEnreg(EMPLOYES2, EMPLOYES, hValDéfaut)
    HAjoute(EMPLOYES2)
    // Passe à l'enregistrement suivant
    HLitSuivant(EMPLOYES, NOM)
    FIN

    Faut que les premieres rubriques de ton fichier cible soit identiques au fichier source, les autres rubriques ne seront pas remplies bien sûr.
     
  3. redha2010

    redha2010 Active Member

    Inscrit:
    Jan 25, 2018
    Messages:
    230
    J'aime reçus:
    226
    si tu es sur le serveur de ton HFSQL tu peut copier les fichiers (fic,memo,index) de ton table EMPLOYEE situé
    dans le repertoire C:\ProgramData\PC SOFT\ServeurHFSQL <Nom du Serveur>\BDD
    et aprés tu importe la description de ta table dans ton analyse apres avoirs copier les fichiers dans ton rep
    tu trouvera toutes les données et aprés tu puoras modifier ta structure dans l'analyse
     
    Fouedusa apprécie ceci.
  4. kabeda

    kabeda Active Member

    Inscrit:
    Avr 23, 2018
    Messages:
    173
    J'aime reçus:
    63
    Bonjour,
    Merci pour les deux réponses.
    Seulement, ça n'est pas satisfaisant. Je voudrais, non seulement régler mon problème de transfert de données, mais aussi apprendre à utiliser deux tables avec le même nom provenant de deux bases différentes sur le même serveur.
     
  5. Ezekiel056

    Ezekiel056 Active Member

    Inscrit:
    Jan 17, 2018
    Messages:
    200
    J'aime reçus:
    154
    Code (Windev):

    hChangeConnexion("MonFIchier",MaBase1)
    HlitPremier(MonFIchier)
    Data est un enregistrement de MonFichier

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (Data,MonFichier)
    hChangeConnexion("MonFIchier",MaBase2)
    Hraz(MonFIchier)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (Data,MonFichier)
    Hajoute(MonFichier)
     
    Essaye avec cet exemple
    En gros tu stock l'enregistrement de la base1 vers une variable de type enregistrement
    Tu change de base, puis tu rempli la nouvelle base avec le contenu de la variable.

    Libre a toi de manipuler les données de la variable AVANT le Hajoute pour modifier les données.
    Si tu veux envoyer PLUSIEURS enregistrements, pour eviter de switcher de base sans arret, tu créé un tableau d'enregistrement que tu remplit AVANT De changer de base PUIS tu change de base et tu fais une boucle de Hajoute sur le tableau.
     
    Motorola, kabeda et WX1331 aiment ça.
  6. Fouedusa

    Fouedusa Active Member

    Inscrit:
    Avr 22, 2018
    Messages:
    132
    J'aime reçus:
    120
    Bonjour;
    une autre méthode pour copier plusieurs enregistrements :
    Code (Text):
    HDécritConnexion("HyperFileCS_2","admin","","serveur:4900","BDD1",hAccèsHFClientServeur)
    HChangeConnexion("*","HyperFileCS_2")

    ALIASCLIENT est une Source de Données <description=Client>

    HAlias(Client, ALIASCLIENT)
    HCréation(ALIASCLIENT)

    HDécritConnexion("HyperFileCS","admin","","serveur:4900","BDD2",hAccèsHFClientServeur)
    HChangeConnexion("Client","HyperFileCS")

    HLitPremier(Client,IDClient)
    TANTQUE PAS HEnDehors(Client)
        // On peut utiliser une condition de sélection
    //    si Condition ALORS
            HCopieEnreg(ALIASCLIENT,Client,hValDéfaut)
            HAjoute(ALIASCLIENT)
    //    FIN
        HLitSuivant(Client,IDClient)
    FIN

    HDécritConnexion("HyperFileCS_2","admin","","serveur:4900","BDD1",hAccèsHFClientServeur)
    HChangeConnexion("*","HyperFileCS_2")

    HLitPremier(ALIASCLIENT,IDClient)
    TANTQUE PAS HEnDehors(ALIASCLIENT)
        HCopieEnreg(Client,ALIASCLIENT,hValDéfaut)
        HAjoute(Client)
        HLitSuivant(ALIASCLIENT,IDClient)
    FIN

    HAlias("*")
    Info("Copie réalisée avec succès")
     
    Bon Dev.
     
    Motorola et kabeda aiment ça.
  7. kabeda

    kabeda Active Member

    Inscrit:
    Avr 23, 2018
    Messages:
    173
    J'aime reçus:
    63
    Bonjour,
    Finalement, j'ai trouvé plus simple. Du moment que j'ai toujours mon ancienne application, il m'a suffit de passer par

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    puis avec ma nouvelle application de passer par

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    .
    Ce qui est beaucoup plus simple et rapide.
     
    Fouedusa apprécie ceci.
  8. periplo94

    periplo94 New Member

    Inscrit:
    Jan 5, 2018
    Messages:
    4
    J'aime reçus:
    0
    ciao, potresti gentilmente mettere il codice esempio HexportXML e HImportXML che hai utilizzato?
    grazie e ciao
     
  9. kabeda

    kabeda Active Member

    Inscrit:
    Avr 23, 2018
    Messages:
    173
    J'aime reçus:
    63
    Bonjour,

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Je crois avoir compris ta question. Désolé si je te réponds en français mais le code est simple.

    Dans mon application d'origine

    Code (Text):

    tabListedesfich est un tableau de chaînes =["FANCTION","Signataire","AUTORISE","EMPLOYES"]

    sUnfichier est une chaîne
    POUR TOUT  sUnfichier DE tabListedesfich
    HExporteXML(sUnfichier,"d:\expot\"+sUnfichier+".xml","",hExpCréation+hExpSansXSL)
    FIN
    Info("fin")
     
    et dans l'application cible

    Code (Text):

    tabListedesfich est un tableau de chaînes =["FANCTION","Signataire","AUTORISE","EMPLOYES"]

    sUnfichier est une chaîne
    POUR TOUT  sUnfichier DE tabListedesfich
        SI PAS HImporteXML(sUnfichier,"d:\expot\"+sUnfichier+".xml","","",hImpCréation) ALORS
            Info(HErreur())
        FIN
     
    FIN
    Info("fin")
     
    Ce petit bout de code m'a permis de récupérer les données existants dans les fichiers FANCTION, Signataire, AUTORISE, EMPLOYES et de les "transférer" dans ma nouvelle application. Il faut savoir que les noms de rubriques sont les mêmes.
     
    suenodesign et joker aiment ça.

Partager cette page

Chargement...