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

Delphi Discussion :

Transfert d'une table d'un serveur vers un autre serveur


Sujet :

Delphi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Transfert d'une table d'un serveur vers un autre serveur
    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

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut transfert base de donnée mysql d'un serveur à un autre
    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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut migration table mysql
    en fait je cherche à faire ce que fait hyperfilesql si j'ai bien compris

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 029
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour et, au passage, bienvenue

    Citation Envoyé par jeff29morlaix Voir le message
    pour résoudre ce problème, je ne sais pas ou chercher? Actuellement je travaille avec tado.
    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)

    .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.
    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 Migration-import-et-export-de-donnees
    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


    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.
    reste à nous montrer votre code car :

    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.....);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    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
    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 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

    ADO n'est décidément pas ma tasse de thé !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Réponses: 23
    Dernier message: 06/03/2015, 14h11
  2. Réponses: 9
    Dernier message: 06/03/2014, 12h17
  3. transfert d'une base d'un PC vers un autre
    Par troumad dans le forum Installation
    Réponses: 7
    Dernier message: 22/01/2007, 14h11
  4. Réponses: 4
    Dernier message: 19/12/2005, 11h31
  5. Réponses: 5
    Dernier message: 08/07/2005, 13h10

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