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 :

Problème de connexion à une base de données [QtSql]


Sujet :

PyQt Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème de connexion à une base de données
    Bonjour,

    Je viens vers vous, car j'ai un problème avec l'un des bouts de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    from PySide import QtGui, QtCore, QtSql
     
    #Définition du pilote de base de données choisi
    db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
     
    #Création de la base de données
    db.setDatabaseName("mybdd.db")
     
    #Ouverture de la base de données
    db.open()
    print(db.open())
    print(db.open()) me renvoie systématiquement false.
    Je ne comprend pas très bien pourquoi. Pouvez-vous m'aider ?

    Merci par avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Bonjour,

    Si False est renvoyé c'est que la base n'est pas ouverte. Est-vous sûr que le driver pour ce type de base est bien installé..

    Pour avoir plus d'info vous pouvez ajouter la ligne
    .
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  3. #3
    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,

    - peut-être faut-il mettre le chemin complet pour le fichier base de données.

    - il ne faut pas ouvrir la base 2 fois (la 2e fois pour le print), mais faire comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    db = QtSql.QSqlDatabase.addDatabase(u"QSQLITE")
     
    db.setDatabaseName(u"mybdd.db") # fichier .db avec son chemin
     
    if not db.open():
        QtGui.QMessageBox.critical(self, 
                            u"Ouverture de la base de données",
                            u"Erreur d'ouverture: %s" % db.lastError().text())
        return # ou, selon cas, interrompre avec raise ou fermer la fenêtre avec close, etc...
    A noter qu'on peut ajouter un "nom de connexion", ce qui permet plusieurs ouvertures (avec des noms de connexion différents) de la même base dans le même programme ("nomcnx1", "nomcnx2", "nomcnx3", ...):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db = QtSql.QSqlDatabase.addDatabase(u"QSQLITE", u"nomcnx1")
    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

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci pour vos réponses, grâce à vous j'ai pu voir que les drivers n'étaient pas chargés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print(db.lastError().text())
    derrière avec un petit peu de google, je suis tombé sur une réponse de...tyrtamos

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    app = QtCore.QCoreApplication(sys.argv)
    Problème résolu!

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

Discussions similaires

  1. Problème de connexion à une base de donnée MySQL
    Par casho dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/06/2007, 14h04
  2. Réponses: 5
    Dernier message: 18/05/2007, 14h34
  3. [VB 2003] Problème de connexion à une base de donnée Access
    Par beegees dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/04/2007, 20h12
  4. problème de connexion à une base de données
    Par dali_dragon dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/11/2006, 19h25
  5. [ODBC] [DB2] Problème de connexion à une base de données sur un as400 via PHP sous Linux
    Par boo64 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 19/04/2006, 09h51

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