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

Bases de données Delphi Discussion :

Lancer mysqldump depuis delphi


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 28
    Points
    28
    Par défaut Lancer mysqldump depuis delphi
    bonjour.
    Je souhaite que l'utilisateur de mon prog en delphi puisse faire une sauvegarde de la base de données. J'aimerai donc lancer :
    'C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe',' -u root -pmdp --opt mabase -h localhost > c:\sauvegarde.sql'

    J'ai donc essayé des milliers de combinaisons avec shellexecute et cmd, sans aucun resultat.
    J'ai essayé des trucs du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(Handle,'open','C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe',' -u root -pmdp --opt ird -h localhost > c:\sauvegarde.sql',nil,SW_SHOWNORMAL);
    La fenetre ms-dos apparait et disparait, je n'ai aucune erreur en testant avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <=32 then ShowMessage(SysErrorMessage(GetLastError));
    mais je n ai jamais mon fichier de sauvegarde créé.

    J'ai bien trouve quelques trucs sur els frum, genre ca:
    http://www.developpez.net/forums/sho...&highlight=cmd
    mais ca me parait bien compliqué pour mon pb.

    Quelqu'un peut il m'aider?
    Merci
    Julie

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Je n'utilise pas mysqldump, mais je lance des requêtes par le client mysql :

    Par exemple, pour charger une table dans ma base à partir d'un fichier csv :

    Cde1 := '-e "load data local infile ''detvte.csv'' replace into table d2d.detail'+
    copy(Id_DatFin.Text,5,2)+' fields terminated by '';''';
    ExecAndWait('mysql.exe','-u root -h 192.168.10.5 '+ Cde1);

    NB : ExecAndWait utilise en fait un ShellExecute dans une boucle pour attendre la fin d'execution du pgm lancé.

    si ça peut te servir...

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Yep !

    Si ça peut t'aider, je lance Word (oui je sais, rien à voir, mais continue à lire...) comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ShellExecute(Handle, 'open', 'winword.exe', PChar(mypath + '\one.dot /mLanceur'), '', SW_NORMAL);
    (one.dot est un modèle à moi enregistré dans mypath.)

    J'ai pas creusé le truc, la différence avec ton code c'est l'utilisation de PChar(les_param_qui_vont_bien).

    Mes 2 cts,
    JP
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Salut,
    Merci pour vos réponses.
    Pour m'en sortir, j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     AssignFile(F,ExtractFilePath(Application.ExeName)+'\doc\sauvegard.bat');
    Rewrite(F); //Crée puis ouvre un nouveau fichier
    Writeln(F,ligne); //Writeln place une marque en fin de ligne
    CloseFile(F);
    ShellExecute(Handle,'open',PChar(ExtractFilePath(Application.ExeName)+'\doc\sauvegard.bat'),nil,nil,SW_hide)<=32
    Bref, j'ai crée un fichier bat, que je lance ensuite. Je suis pas tres contente de ma solution, mais j'ai pas bcp de temps pour finir le projet, alors, j'avance comme je peux.
    Dès que je finis, je testerai vos options.
    Merci encore.
    Julie

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Yep !

    AssignFile(F,ExtractFilePath(Application.ExeName)+'\doc\sauvegard.bat');
    Rewrite(F); //Crée puis ouvre un nouveau fichier
    Writeln(F,ligne); //Writeln place une marque en fin de ligne
    CloseFile(F);

    Pourquoi fais-tu tout ça (just curious) ?
    Le ShellExecute de ton .bat ne suffit pas ? Tu l'as bien créé à la mano, ce bat, non ? (ou alors, t'as pas mis tout le code ?)


    Permets-moi d'insister, tu ne devrais pas en avoir pour longtemps à tester ça, qui est un mix de ta question originale et de mon post Word (je ne peux pas tester, je n'ai pas MySQL Server -- mais bon, si je peux passer un paramètre à mon modèle Word [/mLanceur], ça doit fonctionner dans ton cas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ShellExecute(Handle, 'open', 'C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe', 
      PChar(' -u root -pmdp --opt ird -h localhost > c:\sauvegarde.sql'), 
      nil, SW_SHOWNORMAL);
    Mes 2 cts,
    JP
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Paramètres spécifiques d'une imprimante depuis Delphi
    Par adrien_as dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 15/09/2005, 17h18
  2. Comment appeler une fonction JavaScript depuis Delphi ?
    Par Alfred12 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 17/06/2005, 18h15
  3. Création database depuis Delphi avec dbExpress
    Par alex4 dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/09/2004, 16h01
  4. Sous Word depuis Delphi
    Par alexmorel dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 17/06/2004, 12h45
  5. Installer Interbase en arriere plan depuis delphi
    Par nanaalain dans le forum Bases de données
    Réponses: 9
    Dernier message: 24/11/2003, 14h18

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