Bonjour,
Je suis sur linux et quand je compile mon programme pour utiliser ma base de donnée, ça me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
QSqlQuery::exec: database not open
Echec de la requête
QSqlError("", "Driver not loaded", "Driver not loaded")
Voici le code de l'application
le bdd.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
#include "bdd.h"
using namespace std;
BDD::BDD()
{
    bdd = QSqlDatabase::addDatabase("QMYSQL");
 
    // Définition des paramètres de connexion à la base de données
    bdd.setHostName("localhost"); // @ip serveur MySQL
    bdd.setDatabaseName("X"); // Nom de la base
    bdd.setUserName("X"); // Nom utilisateur
    bdd.setPassword("X"); // Mot de passe
    bdd.open();
    if (bdd.open())
    {
        QMessageBox::information(0, "Base de données", "Connexion réussie");
    }
    else
    {
        QMessageBox::critical(0, "Base de données",
            "Erreur de connexion : " + bdd.lastError().text());
    }
}
le bdd.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
#ifndef BDD_H
#define BDD_H
#include <QtSql>
#include <QApplication>
#include <QVariant>
#include <QString>
#include <QMessageBox>
#include <QDir>
using namespace std;
 
class BDD
{
private:
    QSqlDatabase bdd;
    QSqlQuery requete;
public:
    BDD();
    ~BDD();
};
 
#endif // BDD_H
le .pro

Code qt-pro : 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
QT       += core gui
 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
TARGET = X
TEMPLATE = app
QT += sql
QT += core
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
 
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
 
CONFIG += c++11
 
SOURCES += \
        ajoute.cpp \
        bdd.cpp \
        main.cpp \
        mainwindow.cpp \
        outilaffichage.cpp \
        supprimere.cpp
 
HEADERS += \
        ajoute.h \
        bdd.h \
        mainwindow.h \
        outilaffichage.h \
        supprimere.h
 
FORMS += \
        ajoute.ui \
        mainwindow.ui \
        supprimere.ui
 
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

le main.cpp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
#include "mainwindow.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
 
    return a.exec();
}
Voila si quelqu'un a une idée...