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

HyperFileSQL Discussion :

Copie des enregistrements d'une BDD HF vers Base de Données MySql distante


Sujet :

HyperFileSQL

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Points : 66
    Points
    66
    Par défaut Copie des enregistrements d'une BDD HF vers Base de Données MySql distante
    Je dois faire une copie de ma base de données local HF vers une BDD MySql en ligne. Après une recherche sur le forum, j'ai trouvé une solution que j'ai adapté à mon cas.
    La connexion s'établit correction correctement à la BDD MySql sauf qu'il y a un soucis lors de la copie des données dans le tables en ligne. J'ai beau vérifier le code, je ne vois pas le problème au niveau de HCopieEnreg

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    SI HOuvreConnexion(MaCnx) = Vrai ALORS
    	HChangeConnexion("*", MaCnx)
    	gsListeTableHF= HListeFichier(
    	TableHF	= ExtraitChaîne(gsListeTableHF,rangPremier,RC)
     
    	TANTQUE TableHF <> EOT
    		HAlias(TableHF, "alias")
    		HChangeNom(alias, TableHF)
    		HChangeConnexion(alias , MaCnx_MySQl)
     
    		HLitPremier(TableHF)
    		TANTQUE PAS HEnDehors(TableHF)
    			HCopieEnreg(alias, TableHF, hCopieIdAuto )
    			SI HAjoute(alias, hFixeIdAuto)
    				Trace(TableMYSQL+" ajouté")
    			SINON 
    				Erreur(HErreurInfo(hErrComplet))
    				FinProgramme()	
    			FIN
    			HLitSuivant(TableHF)
    			HAnnuleAlias(alias)
    		FIN
     
              TableHF = ExtraitChaîne(gsListeTableHF, rangSuivant,RC)	
        FIN	
    FIN
    Le message d'erreur est le suivant

    La source de données <_SOURCE_alias_1> n'est pas initialisée.
    - S'il s'agit d'un fichier de données, le fichier n'a pas été trouvé dans l'analyse <C:\Mes projets\GESTION MAG PRO X\GESTIONPRO.wdd> ou n'a pas été décrit avec les fonctions HDéclare / HDéclareExterne.
    - S'il s'agit d'une requête ou d'une vue, l'exécution a peut-être échoué.
    Pour récupérer l'erreur correspondante, testez le résultat des fonctions HExécuteRequête / HExécuteRequêteSQL / HCréeVue.

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 391
    Points : 9 567
    Points
    9 567
    Par défaut
    Bonjour,

    (Re)lis l'aide à propos de Halias : https://doc.pcsoft.fr/fr-FR/?3044176&name=HAlias
    L'exemple devrait beaucoup t'aider.

  3. #3
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Bonjour,

    (Re)lis l'aide à propos de Halias : https://doc.pcsoft.fr/fr-FR/?3044176&name=HAlias
    L'exemple devrait beaucoup t'aider.
    Merci beaucoup pour ton aide.
    j'ai réussi à faire la copie dans la BDD. Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    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 AccesMySQL:PocketPC = 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)

  4. #4
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Bonjour,

    (Re)lis l'aide à propos de Halias : https://doc.pcsoft.fr/fr-FR/?3044176&name=HAlias
    L'exemple devrait beaucoup t'aider.
    Merci beaucoup pour ton aide.
    j'ai réussi à faire la copie dans la BDD. Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    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 AccesMySQL:PocketPC = 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é ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    		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)

  5. #5
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 132
    Points : 66
    Points
    66
    Par défaut
    Bonjour j'ai besoin de votre aide.
    Je suis bloqué sur l'ouverture d'une base de données MySql en ligne. En local mon code est bon (ouverture et copie des données = OK) mais impossible de faire ouvrir la BDD en ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HDécritConnexion(MaCnx_MySQl, "user", "Mtpasse", "serveur:numéro port", "base de donnée", hAccèsNatifMySQL, hOLectureEcriture, "Infos étendues", 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. "+HErreurInfo())
        RETOUR
    FIN
    NB: J'arrive à afficher les données en ligne avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MySQLConnect via Php4WD. AccesMySQL:mySQLConnecte("source","user","Mtpasse","base de données")
    Le certificat SSL est activé sur mon nom de domaine. Si le problème vient de là comment le résoudre ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/10/2021, 10h37
  2. Comment "copier" des enregistrements d'une table A vers une table B ?
    Par SafidyVaovao dans le forum Bases de données
    Réponses: 14
    Dernier message: 09/03/2015, 17h40
  3. Copie des enregistrements d'une table
    Par andremilton dans le forum Développement
    Réponses: 3
    Dernier message: 05/06/2011, 15h48
  4. [MySQL] importer des fichiers word et excel vers base de donnée mysql
    Par malombe dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/07/2009, 20h20
  5. Import des tables d'une BDD access vers une autre table
    Par Darki dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/07/2007, 16h06

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