17 #ifdef DEBUG_BASEDEDONNEES 18 qDebug() << Q_FUNC_INFO << type;
20 db = QSqlDatabase::addDatabase(type);
26 #ifdef DEBUG_BASEDEDONNEES 27 qDebug() << Q_FUNC_INFO;
37 #ifdef DEBUG_BASEDEDONNEES 38 qDebug() << Q_FUNC_INFO <<
"nbAcces" <<
nbAcces;
51 #ifdef DEBUG_BASEDEDONNEES 52 qDebug() << Q_FUNC_INFO <<
"nbAcces restants" <<
nbAcces;
67 QMutexLocker verrou(&
mutex);
70 db.setDatabaseName(fichierBase);
72 #ifdef DEBUG_BASEDEDONNEES 73 qDebug() << Q_FUNC_INFO <<
db.databaseName();
79 #ifdef DEBUG_BASEDEDONNEES 80 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Ouverture réussie à %1").arg(
db.databaseName());
87 #ifdef DEBUG_BASEDEDONNEES 88 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : impossible d'ouvrir la base de données !");
90 QMessageBox::critical(
nullptr, QString::fromUtf8(
"BaseDeDonnees"), QString::fromUtf8(
"Impossible d'ouvrir la base de données !"));
100 QMutexLocker verrou(&
mutex);
106 QMutexLocker verrou(&
mutex);
112 if(requete.contains(
"UPDATE") || requete.contains(
"INSERT") || requete.contains(
"DELETE"))
114 retour = r.exec(requete);
115 #ifdef DEBUG_BASEDEDONNEES 116 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
124 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
130 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : requête %1 non autorisée !").arg(requete);
141 QMutexLocker verrou(&
mutex);
147 if(requete.contains(
"SELECT"))
149 retour = r.exec(requete);
150 #ifdef DEBUG_BASEDEDONNEES 151 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
159 #ifdef DEBUG_BASEDEDONNEES 160 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Résultat non valide !");
167 #ifdef DEBUG_BASEDEDONNEES 168 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Aucun résultat !");
172 donnees = r.value(0).toString();
173 #ifdef DEBUG_BASEDEDONNEES 174 qDebug() << Q_FUNC_INFO <<
"Enregistrement -> " << donnees;
180 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
186 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : requête %1 non autorisée !").arg(requete);
196 QMutexLocker verrou(&
mutex);
202 if(requete.contains(
"SELECT"))
204 retour = r.exec(requete);
205 #ifdef DEBUG_BASEDEDONNEES 206 qDebug() << QString::fromUtf8(
"<BaseDeDonnees::recuperer(QString, QStringList)> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
214 #ifdef DEBUG_BASEDEDONNEES 215 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Résultat non valide !");
220 for(
int i=0;i<r.record().count();i++)
222 donnees << r.value(i).toString();
223 #ifdef DEBUG_BASEDEDONNEES 224 qDebug() << Q_FUNC_INFO <<
"Enregistrement -> " << donnees;
230 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
236 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : requête %1 non autorisée !").arg(requete);
246 QMutexLocker verrou(&
mutex);
253 if(requete.contains(
"SELECT"))
255 retour = r.exec(requete);
256 #ifdef DEBUG_BASEDEDONNEES 257 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
263 data = r.value(0).toString();
265 #ifdef DEBUG_BASEDEDONNEES 266 qDebug() << Q_FUNC_INFO <<
"Enregistrement -> " << data;
269 donnees.push_back(data);
271 #ifdef DEBUG_BASEDEDONNEES 272 qDebug() << Q_FUNC_INFO <<
"Enregistrement -> " << donnees;
278 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
284 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : requête %1 non autorisée !").arg(requete);
294 QMutexLocker verrou(&
mutex);
301 if(requete.contains(
"SELECT"))
303 retour = r.exec(requete);
304 #ifdef DEBUG_BASEDEDONNEES 305 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
311 for(
int i=0;i<r.record().count();i++)
312 data << r.value(i).toString();
314 #ifdef DEBUG_BASEDEDONNEES 315 qDebug() << Q_FUNC_INFO <<
"Enregistrement -> " << data;
316 for(
int i=0;i<r.record().count();i++)
317 qDebug() << r.value(i).toString();
320 donnees.push_back(data);
324 #ifdef DEBUG_BASEDEDONNEES 325 qDebug() << Q_FUNC_INFO <<
"Enregistrement -> " << donnees;
331 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
337 qDebug() << Q_FUNC_INFO << QString::fromUtf8(
"Erreur : requête %1 non autorisée !").arg(requete);
static BaseDeDonnees * baseDeDonnees
Objet de type BaseDeDonnees accessible uniquement depuis une méthode static.
static void detruireInstance()
Permet de detruire l'instance en cours, Static elle est accessible depuis n'importe où ...
bool ouvrir(QString fichierBase)
Permet d'ouvrir le fichier de base de données passé en paramètre.
Class permettant de s'interfacer avec la base de données.
~BaseDeDonnees()
Destructeur de la classe BaseDeDonnees.
QSqlDatabase db
Objet de type QSqlDatabase permettant la connexion avec la base de données.
BaseDeDonnees(QString type)
Constructeur de la classe BaseDeDonnees en privé afin de controller ses appels.
static QString typeBase
Attribut de type QString contenant le type de la base de données (MySQL, SQLite, ...)
static BaseDeDonnees * getInstance(QString type="QSQLITE")
Permet de créer une instance de BDD ou de récuperer celle deja en cours, cette méthode controle l'ins...
Fichier qui contient la déclaration de la classe BaseDeDonnees.
bool recuperer(QString requete, QString &donnees)
Permet d'executer la requete passé en paramètre au format SQL, et remplit le QString de sa réponse...
static int nbAcces
Attribut de type int contenant le nombre d'accès en cours à la base de données.
bool estOuvert()
Permet de savoir si la base de données est ouverte ou non.
bool executer(QString requete)
Permet d'executer la requete passé en paramètre au format SQL.
QMutex mutex
Objet de type QMutex permettant de protéger l'objet db, en autorisant son accès par un seul thread à ...