Bonjour !
Voilà je suis sur l'élaboration d'une classe de connexion à une base de donnée en Singleton. Juste pour précision j'utilise Qt pour les accès à la base de donnée. Ce que je désire donc c'est récupérer un pointeur avec la connexion instancié à la BDD. Mais j'ai un petit problème à la compilation... et là c'est plus un problème de compréhension de langage car passer du Java au C++ il y a certains aspect qui m'échappent...
Voici mes erreurs :
DBConnection.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 main.cpp:13: error: cannot convert `QSqlDatabase' to `QSqlDatabase*' in initiali zation
DBConnection.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 #ifndef DEF_DBCONNECTION #define DEF_DBCONNECTION #include <QSqlDatabase> #include <QtSql> class DBConnection { public: //les fonctions pour récupérer/tuer l'instance static QSqlDatabase Get(); static void Kill(); private: //l'instance à proprement parlé static QSqlDatabase *db_instance; //constructeur et destructeur DBConnection(); ~DBConnection(); //bool pour vérifier si une instance est déjà présente static bool check_instance; }; #endif
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
24
25
26
27
28
29
30
31
32
33
34 #include "DBConnection.h" using namespace std; DBConnection::DBConnection() { db_instance = new QSqlDatabase; db_instance->addDatabase("QMYSQL"); db_instance->setHostName("192.168.99.87"); db_instance->setDatabaseName("caisse"); db_instance->setUserName("****"); db_instance->setPassword("****"); db_instance->open(); check_instance = true; } DBConnection::~DBConnection(){} QSqlDatabase DBConnection::Get() { if(check_instance == true) { return *db_instance; } else{ new DBConnection(); return *db_instance; } } void DBConnection::Kill() { delete db_instance; }
Voilà je vous remercie d'avance !
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 #include <cstdlib> #include <iostream> #include <QSqlDatabase> #include <QtSql> #include "DBConnection.h" using namespace std; int main(int argc, char *argv[]) { QSqlDatabase *con_DB = DBConnection::Get(); system("PAUSE"); return EXIT_SUCCESS; }
Partager