bonjour
je cherche à transférer une table MySQL myisam (.frm .myd .myi) d'un serveur vers un autre en delphi (j'ai delphi xe3).
j'ai essayé avec tado mais ça ne fonctionne pas.
peut-être que quelqu'un pourrait m'aider?
merci
Version imprimable
bonjour
je cherche à transférer une table MySQL myisam (.frm .myd .myi) d'un serveur vers un autre en delphi (j'ai delphi xe3).
j'ai essayé avec tado mais ça ne fonctionne pas.
peut-être que quelqu'un pourrait m'aider?
merci
Rebonjour
pour résoudre ce problème, je ne sais pas ou chercher? Actuellement je travaille avec tado.
Plusieurs possibilités
.Je sais bien entendu lire la table1, la transférer dans un tgrindlist puis la retransférer dans la table2.
Mais ceci est long
.Une autre possibilité serait de copier le fichier du serveur1 mysql (et même le répertoire) dans le serveur2 MySQL.
Là il faudrait trouver comment faire pour modifier le username et le password du fichier du serveur1 MySQL en mettant le username et password du serveur2 MySQL.
.Sinon faire un dump/export/import comme on a accès au serveur1 MySQL et serveur2 MySQL.
.sinon copier la table1 du serveur1 MySQL vers une table transitoire non reliée à un serveur puis copier cette table transitoire dans le serveur2 MySQL.
Voilà ou j'en suis, car la méthode 1 que j'utilise est peu rapide.
merci
en fait je cherche à faire ce que fait hyperfilesql si j'ai bien compris
Bonjour et, au passage, bienvenue
je ne suis pas un fan de MySQL et encore moins de ADO et, pas de bol XE3 ne proposait pas encore Firedac et ses composants (je pense à FDBatchmove)
aucune idée à ces sujets, mais il vaudrait mieux poser ces questions sur le forum mysql, hors langage, chercher avant de poser la question car je suis persuadé que la solution est déjà là ! rien que dans la :faq: Migration-import-et-export-de-donneesCitation:
.Une autre possibilité serait de copier le fichier du serveur1 mysql (et même le répertoire) dans le serveur2 MySQL.
Là il faudrait trouver comment faire pour modifier le username et le password du fichier du serveur1 MySQL en mettant le username et password du serveur2 MySQL.
.Sinon faire un dump/export/import comme on a accès au serveur1 MySQL et serveur2 MySQL.
.sinon copier la table1 du serveur1 MySQL vers une table transitoire non reliée à un serveur puis copier cette table transitoire dans le serveur2 MySQL.
il manque une solution facile, utiliser un GUI par exemple HeidiSQL (j'indique celui-ci car installé sur mon poste j'ai pu vérifier que c'était faisable) pour récupérer les données de la table en SQL Insert, puis utiliser ce SQL sur le second serveur
reste à nous montrer votre code car :Citation:
Je sais bien entendu lire la table1, la transférer dans un tgrindlist puis la retransférer dans la table2.
Voilà ou j'en suis, car la méthode 1 que j'utilise est peu rapide.
le "transférer" dans un TGrindList me fait tiquer, tout d'abord je ne connais pas ce composant (mais je pense qu'il s'agit soit d'une liste, soit d'une grille soit d'un StringList) mais surtout pourquoi ?
le principe de base est : Lire un enregistrement de table 1, l'insérer dans la table 2 ce qui donne un code comme ceci
composants nécessaire outre les 2 connexions : ADoTable1 : Table à copier, un DataSet lié à ADoTable1, ADOQuery2 (un insert) propriété datasource=Dataset, le SQL de la requête INSERT INTO table VALUES (:champ1,:champ2.....);
Bien sûr ce sera encore "lent", on pourrait le mâtiner de transactions pour améliorer le schmilblick en faisant un commit par exemple tous les 100 enregistrements, mais ça, avec ADO je ne sais pas faire :koi:Code:
1
2
3
4
5
6
7
8 AdoTable1.Open; ADoquery2.prepare; While not ADOTable1.EOF do begin ADOQuery2.ExecSQL; ADOTable1.Next; end; AdoTable1.Close;
on pourrait aussi utiliser une requête sur table 1 qui permettrait d'obtenir un ensemble de requêtes INSERT (même principe qu'avec le GUI voir :faq: https://mysql.developpez.com/faq/?pa...ier-de-donnees) pour exécuter ensuite ce script mais ça non plus avec ADO je ne sais pas faire :koi:
ADO n'est décidément pas ma tasse de thé !