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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    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
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    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 éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    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
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    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 confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    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 486
    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

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

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 479
    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