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

Python Discussion :

problème lors de chargement d'une base mysql


Sujet :

Python

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Par défaut problème lors de chargement d'une base mysql
    Bonjour à tous,

    J'ai utilisé ce code python pour créer une base Mysql en utilisant un fichier sql comme fichier d'entrée.

    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
     
     
    #utf8
    import mysql.connector
    import sys
    import re
     
    class CreateDatabase:
        def exec_sql_file(self, user, password, port, host, sql_file):
            cnx = mysql.connector.connect(user=user, password=password, port=port,
                                          host=host)
            print
            "************ Chargement de la base En cours... *********************"
            cursor = cnx.cursor()
            statement = ""
            for line in open(sql_file):
                if re.match(r'--', line):  # ignore sql comment lines
                    continue
                if not re.search(r'[^-;]+;', line):  # keep appending lines that don't end in ';'
                    statement = statement + line
                else:  # when you get a line ending in ';' then exec statement and reset for next statement
                    statement = statement + line
                    # print "\n\n[DEBUG] Executing SQL statement:\n%s" % (statement)
                    try:
                        cursor.execute(statement)
                    except :
                        print
                        "[MYSQLERROR] Erreur lors de chargement de la base ****"
                    statement = ""
            cursor.close()
            cnx.commit()
            cnx.close()
     
    if __name__=="__main__":
        CDB=CreateDatabase()
        CDB.exec_sql_file(r"root",r"xxx",r"3306",r"localhost",r"C:\Users\xxx\patch_creation_DB.sql")
    Le code tourne sans aucune exception mais je m'es rendu compte qu'il ne fait pas l'insertion de quelques données dans une des tables de la base.

    Sachant que j'ai des contraintes techniques m'exigeant d'utiliser la version python 2.7 et seulement l'api Mysql.connector.

    Avez-vous une idée sur les raisons de ce souci et éventuellement si vous avez des recommandations pour régler ce souci svp.

    Merci beaucoup d'avance !

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Par défaut
    J'ai remarqué que l'erreur vient quand on'a des lignes qui contiennent des ; par exemple dans le cas ou on'a une insertion des valeurs contenant des ";"

    Du coup l'instruction qui cherche les expressions régulières terminant pas des ";" ne fonctionne pas comme il faut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if not re.search(r'[^-;]+;', line):  # keep appending lines that don't end in ';'
                    statement = statement + line
    Avez-vous des propositions pour le régler svp ?

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par fraisa1985 Voir le message
    Avez-vous des propositions pour le régler svp ?
    Il faudrait commencer par montrer les lignes qui plantent.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Problème lors du chargement d'une vidéo avec wx.media
    Par Matthyeux dans le forum wxPython
    Réponses: 0
    Dernier message: 21/07/2011, 22h24
  2. problème lors de chargement d'une nouvelle fenetre
    Par Sfaxiano dans le forum Windows Forms
    Réponses: 17
    Dernier message: 24/07/2009, 15h21
  3. Problème lors du chargement d'une image gif
    Par pat-trix dans le forum Applets
    Réponses: 15
    Dernier message: 19/09/2006, 17h22
  4. problème de connexion sur une base mysql
    Par boss_gama dans le forum Installation
    Réponses: 4
    Dernier message: 05/09/2006, 14h13
  5. problème d'interfaçage d'une base Mysql
    Par zidenne dans le forum Installation
    Réponses: 4
    Dernier message: 19/04/2006, 18h49

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