Ouverture base de données SQLite avec QT
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:
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:
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:
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!).