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.
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.
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
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.
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.
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.
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.
ciao, potresti gentilmente mettere il codice esempio HexportXML e HImportXML che hai utilizzato? grazie e ciao
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.