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

Bases de données Discussion :

Problème avec SQLite


Sujet :

Bases de données

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut Problème avec SQLite
    bonjour,

    j'essai de créer une application avec une bdd sqlite.
    J'ai vraiment eu du mal a trouver comment faire mais a force de persévérer j'ai trouver des exemples sur le net.

    Je vous montre mon code.
    mon .h :
    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
     
    #include <QWidget>
    #include <QString>
    #include <QtSql/QSqlDatabase>
    #include <QtSql/QSqlQuery>
     
    class baseDeDonnees: public QWidget
    {
        public :
                baseDeDonnees(QString, QString, QString, QString );
     
        private :
                // function : create connexion to the database
                void dbConnexion();
     
                // parameters
                QSqlDatabase d_db;
                QString d_host, d_dbname, d_username, d_pwd;
    };
    mon .cpp :
    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
    37
     
    #include "baseDeDonnees.h"
    #include <QString>
    #include <QApplication>
    #include <QtSql/QSqlDatabase>
    #include <QtSql/QSqlQuery>
    #include <QMessageBox>
    #include <QtSql/QSqlError>
    #include <QtSql/QSqlDriver>
    #include <QtSql/QSqlDriverPlugin>
     
    // constructor : initialise the database
    baseDeDonnees::baseDeDonnees(QString host, QString dbname, QString username, QString pwd ): QWidget(),
    d_host(host), d_dbname(dbname), d_username(username), d_pwd(pwd)
    {
            dbConnexion();
    }
     
     
    // function : create connexion to the database
    void baseDeDonnees::dbConnexion()
    {
        d_db = QSqlDatabase::addDatabase("QSQLITE");
        d_db.setHostName(d_host);
        d_db.setDatabaseName(d_dbname);
        d_db.setUserName(d_username);
        d_db.setPassword(d_pwd);
     
        if ( !d_db.open() )
        {
             QMessageBox::warning(this, "Erreur Ouverture", d_db.lastError().text());
        }
        else
        {
            QMessageBox::information(this, "Bonne Ouverture", "Connexion BD Ok!");
        }
    }
    mon main.cpp :
    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
     
    #include <QApplication>
    #include <QtGui>
    #include "mainwindow.h"
    #include <baseDeDonnees.h>
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        QString host = "localhost";
        QString dbname = "Pi.db";
        QString username = "root";
        QString pwd = "";
        baseDeDonnees w(host, dbname, username, pwd);
        w.show();
     
     
        MainWindow fenetre;
        fenetre.showMaximized();
     
        return app.exec();
    }
    A la compilation j'ai plein d'erreurs du genre :
    undefined reference to `_imp___ZN12QSqlDatabaseD1Ev'
    C:\Users\sebastien\Projet C++\GestionPi-build-desktop\..\GestionPi\baseDeDonnees
    Quelqu'un aurait une idée,

    merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Points : 40
    Points
    40
    Par défaut
    Pour les messages d'erreurs as tu pensé à ajouter QT += sql dans ton .pro ?

    SQLite ne gère pas les utilisateurs et n'est pas client/serveur tu n'as donc pas besoin de fournir toutes les informations de connexions que tu as donné.
    Tu peux simplement écrire : QSqlDatabase::addDatabase("QSQLITE","le nom du fichier de ta base SQLite");
    Le host, user et password ne servent à rien.

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    merci,

    je n'avais pas ajouter QT += sql dans mon .pro

    ca fonctionne.

    par contre si je met
    QSqlDatabase::addDatabase("QSQLITE","le nom du fichier de ta base SQLite");
    il y a une erreur.

    Il faut que je laisse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    d_db = QSqlDatabase::addDatabase("QSQLITE");
    d_db.setDatabaseName(d_dbname);
    et la ca se connect bien.

    merci pour ton aide

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

Discussions similaires

  1. problème avec sqlite
    Par nagca dans le forum Android
    Réponses: 1
    Dernier message: 08/06/2011, 10h08
  2. Réponses: 4
    Dernier message: 25/06/2010, 17h05
  3. Problème avec Sqlite lors de la compilation
    Par Jiyuu dans le forum Déploiement/Installation
    Réponses: 6
    Dernier message: 28/11/2009, 18h32
  4. [C#]problème avec SqLite
    Par ClaudeBg dans le forum Linq
    Réponses: 8
    Dernier message: 18/06/2009, 16h17
  5. Problème avec SQLITE
    Par Jiyuu dans le forum Django
    Réponses: 2
    Dernier message: 12/03/2009, 07h07

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