BonjourBonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
Lire la documentation est parfois très utile
Voici le lien vers la solution de ton problème ;-)
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
Bien Cordialement
-
Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !Rejeter la notice
Copie des enregistrements d'une BDD HF vers Base de Données MySql distante
Discussion dans 'Windev' créé par karamaster, Jan 17, 2022.
Gemini1961
Well-Known Member
MEMBRE WX
DUMP TEAM
Fais une requête sur la première table.
Parcours cette requête pour copier et ajouter les enregistrements dans l'autre table.
De cette façon tu n'as pas besoin de changer de connexion entre chaque enregistrement.
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
L'exemple devrait beaucoup t'aider.Cliquez pour agrandir...
j'ai réussi à faire la copie dans la BDD. Voici mon code
gsListeTableHF, TableHF, sCleSource est une chaîne
bConnecter est un booléen = Faux
AccesMySQL est un c_Php4WX
alias est une Source de Données
SI InternetConnecté() ALORS
//Connexion via Php4WX
AccesMySQL:TypeBase = "PDOMySQL"
AccesMySQL:CleCryptage = "MACLE"
AccesMySQL:CryptRetour = Faux
AccesMySQL:CrypteReq = Vrai
AccesMySQL:methodeZip = Faux
AccesMySQL:dataHexa = Faux
AccesMySQL:modeUTF8Entree = Vrai
AccesMySQL:modeUTF8Sortie = Faux
AccesMySQL:charset = "utf-8"
AccesMySQL:alphabet = alphabetUTF8
SI PAS EnModeTest() ALORS AccesMySQLocketPC = Vrai
SI PAS AccesMySQL:mySQLConnecte("adresse_IP_du_serveur/php4wd.php","user","mp","BDD") ALORS
Erreur("Impossible de se connecter au serveur de base de données distant.")
FinProgramme()
FIN
MaCnx_MySQl..Utilisateur = "root"
MaCnx_MySQl..MotDePasse = ""
MaCnx_MySQl..Serveur = "Serveur"
MaCnx_MySQl..BaseDeDonnées = "BDD"
MaCnx_MySQl..Provider = hAccèsNatifMySQL
MaCnx_MySQl..Accès = hOLectureEcriture
MaCnx_MySQl..InfosEtendues = "Infos étendues"
MaCnx_MySQl..OptionsCurseur = hCurseurClient
SI HOuvreConnexion(MaCnx_MySQl) = Faux ALORS
Erreur("Impossible de se connecter à la base de données distant. Vérifier votre connexion Internet."+RC+" Si l'erreur persiste, contacter l'administrateur.")
FIN
SI HOuvreConnexion(MaCnx) = Vrai ALORS
gsListeTableHF = HListeFichier()
TableHF = ExtraitChaîne(gsListeTableHF, rangPremier,RC)
TANTQUE TableHF <> EOT
SI HAlias(TableHF, alias) = Vrai ALORS
HChangeNom(alias, TableHF)
HChangeConnexion(alias, MaCnx_MySQl)
HCréation("*")
HLitPremier(TableHF)
TANTQUE PAS HEnDehors(TableHF)
SI HCopieEnreg(alias, TableHF, hCopieIdAuto ) ALORS
//Ajout des enregistrement dans la base de données MySQl
HAjoute(alias, hFixeIdAuto)
FIN
HLitSuivant(TableHF)
FIN
HAnnuleAlias(alias)
SINON
Erreur("Détail du Problème lors de la création du fichier tampon " + HErreurInfo())
FIN
TableHF = ExtraitChaîne(gsListeTableHF, rangSuivant,RC)
FIN
SINON
ToastAffiche("La connexion à la base de données distant a échoué. La sauvegarde reprendra dans 30 minutes.",toastCourt,cvMilieu)
FIN
SINON
ToastAffiche("Le réseau internet a été interrompu. La sauvegarde reprendra dans 30 minutes.",toastCourt,cvMilieu)
FIN
HFermeConnexion(MaCnx_MySQl)
J'ai une préoccupation. je suis obligé de toujours vider mes fichiers avant de faire la sauvegarde. J'a modifié mon code mais le message de doublon s'affiche. Comment le désactivé ?
TANTQUE TableHF <> EOT
SI HAlias(TableHF, alias) = Vrai ALORS
HChangeNom(alias, TableHF)
HChangeConnexion(alias, MaCnx_MySQl)
HCréation("*")
HLitPremier(TableHF)
TANTQUE PAS HEnDehors(TableHF)
sListeClé = HListeClé(alias, hLstDétail)
i est entier = 0
bTest est un booléen = Faux
POUR TOUT CHAÎNE sCle DE sListeClé SÉPARÉE PAR RC
//Astuce : Permet de récupérer la position de la rubrique clé unique du fichier qui sera utilisée pour la recherche.
SI bTest = Faux ALORS
i++
FIN
//On Récupère la clé Unique
SI Position(sCle,TAB+"1"+TAB) <> 0 ALORS
bTest = Vrai
sRubriqueClePrimaire = SansEspace(ExtraitChaîne(sCle,1))
FIN
FIN
SI HCopieEnreg(alias, TableHF, hCopieIdAuto ) ALORS
sCleSource = ExtraitChaîne(HRécupèreEnregistrement(alias),i)
//Ajout ou Modification des enregistrement dans la base de données MySQl
//L'enregistrement n'existe pas on l'ajoute sinon on le modifie
// En cas de doublon détecté, on le modifie
SI HAjoute(alias, hFixeIdAuto) = Faux OU HErreurDoublon() = Vrai ALORS
HLitRecherchePremier(alias, sRubriqueClePrimaire, sCleSource)
SI HTrouve(alias) = Vrai ALORS
HModifie(alias)
HLitSuivant(alias, sRubriqueClePrimaire)
FIN
FIN
FIN
HLitSuivant(TableHF)
FIN
HAnnuleAlias(alias)
SINON
Erreur("Détail du Problème lors de la création du fichier tampon " + HErreurInfo())
FIN
TableHF = ExtraitChaîne(gsListeTableHF, rangSuivant,RC)