Bonsoir,
Je dois faire une petite application dans laquelle il faut que je me connecte à une base de données. J'ai crée une base de données avec sqlite et j'aimerai maintenant me connecter dessus. Je reçois toujours une réponse : "Drivers not loaded".

Voici mon code .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
22
23
24
25
 
#ifndef DBEDWIGE_H
#define DBEDWIGE_H
 
#include <QWidget>
#include <QString>
#include <QSqlDatabase>
#include <QSqlQuery>
 
class dbEdwige: public QWidget
{
    public :
            // constructor : initialise the database
            dbEdwige(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;
};
#endif // DBEDWIGE_H
Et voici mon code .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
38
39
 
#include "dbEdwige.h"
 
#include <QString>
#include <QApplication>
#include <QSqldatabase>
#include <QSqlquery>
#include <QMessageBox>
#include <QSqlError>
#include <QSqlDriver>
#include <QSqlDriverPlugin>
 
// constructor : initialise the database
dbEdwige::dbEdwige(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 dbEdwige::dbConnexion()
{
    d_db.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!");
    }
}
Dans mon main :
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 "dbEdwige.h"
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
 
    QString host = "localhost";
    QString dbname = "dbEdwige.db";
    QString username = "root";
    QString pwd = "";
    dbEdwige w(host, dbname, username, pwd);
    w.show();
    return a.exec();
}
Est-ce qu'il y a une erreur dans mon code ?

Je ne suis pas sûre d'avoir bien créé ma base de données :
J'ai en fait executé dans la console : sqlite3 /dbEdwige.sqlite
Puis j'ai fait mes "CREATE [...]"
Comme QT veut des fichiers .db j'ai modifié mon fichier .sqlite en .db.
Est-ce que cela peut venir de là ?

Merci de bien vouloir m'aider (cela fait maintenant environ 10h que j'essaye de trouver une solution!).