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

VB 6 et antérieur Discussion :

[vb6]Exporter une base de donnée Mysql en fichier csv


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut [vb6]Exporter une base de donnée Mysql en fichier csv
    Bonjour

    Ayant fais des recherche sans avoir trouvé de réponse je me permets de solliciter votre aide.


    J’ai réalisé une application permettant de faire du contrôle de paramètres sur machine de production. Cette application me génère énormément d'informations que j'enregistrer tout au long du processus de fa dans une base de donnée Mysql.

    Une fois la production terminée, j'aimerai exporter les données facilement sans avoir à copier chaque champs de ma base, ce qui prend un temps fou.

    J'aimerai connaître ce qu'il faut faire pour pouvoir exporter les données au format csv comme dans php my admin, qui génère cela en quelques secondes.

    Amicalement

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Bonjour,

    qu'est-ce qui t'empêche d'utiliser PhpMyAdmin sur ce serveur MySQL ? Tu veux automatiser ça en un clic ? (sans interface d'administration ?)

    Si c'est dans un but de sauvegarde, je te conseille plutôt un format .sql qui sera plus complet et facile à réintégrer (cf. utilitaire mysqldump.exe, fourni avec MySQL - si tu veux d'autres infos, tu sonnes =) )

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    Merci de ta réponse, j'ai peut être oublié de préciser quelques points.

    Enfin cette application sera utilisée par des opérateurs de production qui n'ont aucunes compétances informatiques.

    Une fois la production terminée, j'aimerai donc générer un fichier csv, afin de l'integrer dans un fichier excel pour proceder à des analyses statistiques.

    Donc pour te répondre je ne peux pas utiliser l'interface d'administration, il faut que ce soit transparant pour l'utilisateur

    Est-ce possible ?

    Je ne connais pas mysqldump.exe, je me renseigne dessus histoire de voir si ca peut résoudre mon probleme,

    Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    MySQL doc a dit :
    mysqldump can also be used to generate files in CSV, other delimited text, or XML format.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    j'ai donc regardé cette foncion qui parait appropriée à mon cas

    voila ce que j'ai donc trouvé
    serveur easyphp localhost
    user=root
    password=pwd
    base = mesure
    table= mesure_2007_07_03

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("cmd /c mysqldump --host=localhost --user=root --password=pwd --database=mesure --db_name=mesure_2007_07_03> C:\db_backup.sql")
    il me génère bien un fichier db_backup.sql, mais celui ci est vide.

    Aurais-je oublié quelques choses dans la syntaxe ?

    Comment etre sur que cette fonction arrive déja à se connecter à la base de données ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Pour commencer, tu peux tester en mode de commande et voir si tout se passe bien.
    Ensuite, attention à la syntaxe (espaces, manque un "s" à l'option "databases"...)

    Puis, entoure tes chemins par des doubles-quotes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "mysqldump --host=localhost --user=root --password=pwd --databases=mesure --db_name=mesure_2007_07_03 > " & chr(34) & "C:\db_backup.sql" & chr(34)
    devrait marcher.

    Cela dit, le format .sql sera inexploitable dans Excel...

    A la place de ">", utilise plutôt l'option -r (--result-file=file), j'ai déjà eu un problème similaire de fichier vide :/

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    alors j'ai essayé comme vous le préconnisez de tester directement via la command
    voila ce que j'entre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:/mysqldump.exe --host=localhost --user=root --password=pwd --databases=mesure --db_name=mesure_2007_07_03 > c:\test.sql
    mais cela me dit que "--db_name=mesure_2007_07_03" n'est pas une commande connue

    alors j'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:/mysqldump.exe --host=localhost --user=root --password=pwd --databases=mesure > c:\test.sql
    il me crée bien le fichier avec ca dedans
    --
    Usage: c:/mysqldump.exe [OPTIONS] database [tables]
    OR c:/mysqldump.exe [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
    OR c:/mysqldump.exe [OPTIONS] --all-databases [OPTIONS]
    For more options, use c:/mysqldump.exe --help
    --


    est ce que la syntaxe que vous me conseillé d'utiliser est bien celle la ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("cmd /c mysqldump.exe --host=localhost --user=root --password=pwd --databases=mesure --db_name=mesure_2007_07_03 --result-file=" & Chr(34) & "C:\db_backup.sql" & Chr(34))
    Merci.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Je n'utilise pas exactement cette syntaxe en temps normal. Essaye donc dans ton cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump -h localhost -u root -ppwd mesure mesure_2007_07_03 -r "c:\test.sql"
    Soit dans VB comme chaîne à passer dans une fonction Shell


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "mysqldump -h localhost -u root -ppwd mesure mesure_2007_07_03 -r " & chr(34) & "c:\test.sql" & chr(34)
    Et évite le vouvoiment, j'suis pas si vieux

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    J'arrive enfin a avoir quelque chose, quand je tape ca dans Msdos

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c:/mysqldump.exe --host=localhost --user=root --password=password systeme_de_m
    esure mesure_2007_06_29_10h12_llfev_test > c:\test1.sql
    J'obtient bien un fichier remplis.

    Me reste plus qu'a faire marcher ca sous vb.

    je test ce que tu me propose.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Voilà, c'est équivalent. Par contre, comme je te le disais, tu obtiendras un fichier .sql avec strucutures complète de tes tables et données, inexploitable avec Excel

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    Bon j'ai testé la meme chose dans msdos qu'en Vb6 et dans le deuxieme cas cela ne marche pas.

    Une idée ?

    msdos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c:/mysqldump.exe --host=localhost --user=root --password=password m
    esure mesure_2007_06_29 > c:\test.sql
    VB6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("cmd /c mysqldump -h localhost -u root -ppassword mesure mesure_2007_06_29 > c:\test.sql")

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Relis mieux mes précédents messages

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    Hello

    Bon voila ca fonctionne j'arrive bien à avoir un fichier csv.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell ("c:/mysqldump.exe -h localhost -u root -ppassword mesure mesure_2007_07_03 -r " & Chr(34) & "c:\test.csv" & Chr(34))
    Maintenant je trouve que dans ce fichier il y a beaucoup de chose inutiles, est il possible de ne récuperer que les valeurs de ma base un peu comme php my admin le fait ?

    est t'il possible de regler des options csv ? comme à chaque fin de ligne un saut de ligne automatique...

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Mmmm,

    ce n'est pas si simple, car tu généres le même fichier (.sql) mais avec seulement une extension .csv, mais pas du tout le format approprié, c'est à dire des colonnes de données séparées par des ";" et entourées de doubles-quotes le cas échéant. De plus, tu as la structure des tables qui ne t'intéresse pas à priori.
    Je pense effectivement qu'il faut jouer sur les options pour retrouver l'équivalent PhpMyAdmin : exporter les données seules, spécifier le format de sortie .csv, gérer l'encodage etc.

    Je ne l'ai jamais fait, pose la question sur le forum MySQL peut-être

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    oki merci en tout cas pour toute ton aide !

    Effectivement j'obtient tout les infos sur une seule ligne alors que j'aimerais avoir chaque index sur une ligne diferentes. Il est possible de régler ca via php my admin, mais je ne trouver rien sur le net...

    Je vais tenter coté forum Mysql

    Merci

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Voir des options telles que :

    --no-create-info

    --fields-terminated-by=';'


    Vala :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysqldump -h localhost -u root -ppwd --no-create-info --tab=c:\temp  --fields-terminated-by=";" mabase

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    effectivement cela fonctionne !

    merci d'avoir regardé

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/05/2013, 19h08
  2. Réponses: 5
    Dernier message: 03/09/2012, 10h56
  3. [MySQL] Exporter une base de donnée MySQL
    Par Globolite dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/08/2012, 10h51
  4. Réponses: 0
    Dernier message: 27/04/2010, 12h43
  5. Exporter une base de données MySQL vers un fichier
    Par Niak74 dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 05/05/2008, 10h05

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