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

PyQt Python Discussion :

Impossible d'enregistrer données dans base de données


Sujet :

PyQt Python

  1. #1
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut Impossible d'enregistrer données dans base de données
    Bonjour,

    J'essaie d'enregistrer dans une base de données des valeurs, mais je n'y parviens pas...

    J'utilise la méthode suivante:

    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
                  try:
                    insert_breakdown=[None]*10
                    insert_breakdown[0]=self.toolQRcode.text()
                    insert_breakdown[1]=self.dateTimeEdit.text()
                    insert_breakdown[2]=self.ComboLine.currentText()
                    insert_breakdown[3]=self.ComboCell.currentText()
                    insert_breakdown[4]=self.ComboToollocation.currentText()
                    insert_breakdown[5]=self.ComboIntervenant.currentText()
                    insert_breakdown[6]=self.commentaire.toPlainText()
                    insert_breakdown[7]=BreakDownState
                    insert_breakdown[8]=''
                    insert_breakdown[9]=self.ComboToolIn.currentText()
     
                    print(insert_breakdown)
                    self.cursor.execute('INSERT INTO breakdown (ID_TOOL, sDATE, ID_LINE, ID_CELL, POSITION, ID_INTERVENANT, COMMENT, BREAKDOWN_STATE, ID_TOOL_NEW, ID_TOOL_NEW_NAME) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)', insert_breakdown)
     
                except sqlite3.Error:
                    self.logger.log(logging.WARNING, "Error during saving datas into db")

    Auriez-vous une idée?

    Dans ma base de données, j'ai une colonne ID qui est clé primaire.

    Merci par avance.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Supernatural Voir le message
    J'essaie d'enregistrer dans une base de données des valeurs, mais je n'y parviens pas...
    "je n'y parviens pas" est assez vague.
    Est ce que çà sort une erreur?
    Est que çà enregistre les données mais vous récupérez autre chose qu'attendu?

    Sûr qu'en écrivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             except sqlite3.Error:
                    self.logger.log(logging.WARNING
    Si c'est une erreur de type sqlite3.Error, supprimer les informations qui permettraient de comprendre l'erreur n'aide pas!

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

  3. #3
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    Aucune donnée n'est enregistrée dans ma base de données, je n'ai pas d'erreur. Par contre une chose étrange est qu'un fichier GMAO.db-journal est créé avec mes données...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Peut être que vous avez oublié un commit quelque part.

    De toutes façons c'est pas avec le bout de code que vous montrez qu'on peut le savoir.

    C'est l’intérêt de reproduire le problème avec un minimum de code qu'on pourra exécuter sans devoir récupérer toute l'application...

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

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec le module python "sqlite3", c'est le mode "transaction" qui est par défaut et non "autocommit".
    https://docs.python.org/3/library/sq...g-transactions

    Il faut donc utiliser .commit() pour enregistrer l'exécution des requêtes, et .rollback() en cas d'erreur pour annuler toutes les modifications depuis le précédent commit().

    Autre solution moins sécurisée: mettre le mode "autocommit", en mettant "isolation_level" à None dans l'établissement de la connexion (.connect(...)):
    https://docs.python.org/3/library/sq...solation_level
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    Oui j'avais omis le .commit()...

    Merci beaucoup pour vos aides !!

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

Discussions similaires

  1. Enregistrement emoticone dans base de données
    Par radjiv97441 dans le forum jQuery
    Réponses: 21
    Dernier message: 30/07/2018, 08h13
  2. Enregistrer Bitmap dans base de données
    Par nnnlll dans le forum Android
    Réponses: 5
    Dernier message: 27/05/2015, 10h25
  3. Réponses: 2
    Dernier message: 10/06/2014, 22h51
  4. Enregistrer image dans base de donnée
    Par sat83 dans le forum C++Builder
    Réponses: 3
    Dernier message: 09/09/2009, 10h21
  5. impossible d'enregistrer document dans la bibliotheque
    Par lthomas dans le forum SharePoint
    Réponses: 2
    Dernier message: 19/03/2008, 13h44

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