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

Discussion :

Erreur fatale : QSqlBases : aucun fichier ou dossier de ce type

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Erreur fatale : QSqlBases : aucun fichier ou dossier de ce type
    bonsoir a tous,
    je decouvre la gestion des bases de données sous Qt, j'ai donc crée une petit appli de test.
    mon probleme etant qu'a la compilation j'ai ce message qui s'affiche:
    main.cpp:2:24: erreur fatale: QSqlDatabase : Aucun fichier ou dossier de ce type
    compilation terminée.
    voila mon code:
    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
    #include <QtGui>
    #include <QSqlDatabase>
    #include "fenetre.h"
     
    void creerconnexion();
     
    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
     
        fenetre fen;
     
        fen.show();
        return app.exec();
    }
    fenetre.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
    #include <fenetre.h>
     
    using namespace std;
     
    fenetre::fenetre() : QWidget()
    {
        quit=new QPushButton("Quit");
        bouton=new QPushButton("Ok");
        basename=new QLineEdit("basename");
        username=new QLineEdit("username");
        password=new QLineEdit("mot de passe");
     
        box1=new QVBoxLayout(this);
        box1->addWidget(basename);
        box1->addWidget(username);
        box1->addWidget(password);
        box1->addWidget(bouton);
        box1->addWidget(quit);
     
        connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
    }
    fenetre.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
    20
    21
    #ifndef FENETRE_H_INCLUDED
    #define FENETRE_H_INCLUDED
     
    #include <iostream>
    #include <QtGui>
     
    using namespace std;
     
    class fenetre : public QWidget
    {   Q_OBJECT
     
        public:
        fenetre();
     
        private:
        QPushButton *quit, *bouton;
        QLineEdit *basename, *username, *password;
        QVBoxLayout *box1;
     
    };
    #endif // FENETRE_H_INCLUDED

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Pour utiliser le module sql, il faut ajouter QT += sql dans le fichier projet (.pro)

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    je l'ai deja inclus dans le .pro mais ca ne change rien, ca bloque toujours a la compilation

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Pourtant cette erreur est tout à fait typique du fait que le sous-répertoire QtSql dans les includes n'est pas inclus dans la liste des répertoires d'include du compilateur.

    As-tu bien relancé qmake après avoir modifié le fichier .pro ?

    Sinon peux-tu indiquer la ligne de commande de compilation qui provoque l'erreur?

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    salut a tous,
    j'ai décidé de reprendre mon programme dés le début et de tout mettre dans un seul fichier.
    voila mon code
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #include <QtGui>
    #include <QtSql>
     
    class fenetre : public QWidget
    {
        Q_OBJECT
     
        public:
        fenetre();
    //    public slots:
     
     
        private:
        QPushButton *quit, *bouton;
        QLineEdit *basename, *username, *password;
        QVBoxLayout *box1;
     
    };
     
     
    fenetre::fenetre() : QWidget()
    {
        quit= new QPushButton("Quitter");
        bouton= new QPushButton("Ok");
        basename=new QLineEdit("Basename");
        username=new QLineEdit("Username");
        password=new QLineEdit("Password");
        box1=new QVBoxLayout(this);
        box1->addWidget(basename);
        box1->addWidget(username);
        box1->addWidget(password);
        box1->addWidget(bouton);
        box1->addWidget(quit);
     
    };
     
    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
     
        fenetre fen;
     
        fen.show();
     
        return app.exec();
    }
    ca bloque toujours a la compilation au niveau du make.
    voila le message d'erreur qui s'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [root@????:mysql]# make
    g++ -Wl,-O1 -o mysql main.o    -L/usr/lib64 -lQtGui -lQtCore -lpthread 
    main.o: In function `fenetre':
    /home/ramzi/C++/mysql/main.cpp:42: undefined reference to `vtable for fenetre'
    /home/ramzi/C++/mysql/main.cpp:42: undefined reference to `vtable for fenetre'
    main.o: In function `~fenetre':
    /home/ramzi/C++/mysql/main.cpp:25: undefined reference to `vtable for fenetre'
    /home/ramzi/C++/mysql/main.cpp:25: undefined reference to `vtable for fenetre'
    /home/ramzi/C++/mysql/main.cpp:25: undefined reference to `vtable for fenetre'
    main.o:/home/ramzi/C++/mysql/main.cpp:25: more undefined references to `vtable for  enetre' follow
    collect2: ld a retourné 1 code d'état d'exécution
    make: *** [mysql] Erreur 1
    Qu'en pensez vous?

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 669
    Points : 188 682
    Points
    188 682
    Par défaut


    qmake existe, il y a bien une raison.

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    franchement je suis un peu perdu la.
    j'ai écrit mon programme.
    je le compile en faisant:
    qmake-qt4 -project
    qmake-qt4
    make

    et la j'ai le message d'erreur. pouvez vous éclairer ma lanterne parce que la c'est tout noir pour moi

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 669
    Points : 188 682
    Points
    188 682
    Par défaut
    J'avais zappé une partie, en effet . Et la QR n'est pas suffisamment complète à ce sujet, ça sera corrigé pour la prochaine mise à jour.

    Reconstruire de la sorte ton .pro à chaque itération n'est pas une bonne idée, tu perds toute modification (notamment un certain QT += sql).

    Ensuite, tu fais exactement comme qmake n'est pas prévu, soit tout dans un fichier. Il préfère de très loin un en-tête, l'implémentation et le main bien séparés. Tu peux cependant inclure le résultat du moc (#include "main.moc" en bas de ton fichier, à adapter en fonction de ce qui est généré).

  9. #9
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    je n'ai aucun fichier .moc dans mon dossier

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/10/2012, 17h04
  2. Réponses: 6
    Dernier message: 22/08/2011, 15h12
  3. Réponses: 15
    Dernier message: 19/07/2011, 08h56
  4. Réponses: 3
    Dernier message: 07/10/2010, 17h40
  5. Réponses: 5
    Dernier message: 07/06/2010, 11h52

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