|
Campus Serre
1.0
BTS SN-IR La Salle Avignon 2018
|
Gestion la base de données SQLite. Plus de détails...
#include <basededonnees.h>

Fonctions membres publiques | |
| bool | connecter (QString nomBase) |
| bool | executer (QString requete) |
| bool | recuperer (QString requete, QString &donnees) |
| bool | recuperer (QString requete, QStringList &donnees) |
| bool | recuperer (QString requete, QVector< QString > &donnees) |
| bool | recuperer (QString requete, QVector< QStringList > &donnees) |
Fonctions membres publiques statiques | |
| static BaseDeDonnees * | getInstance () |
| static void | detruireInstance () |
Fonctions membres privées | |
| BaseDeDonnees () | |
| ~BaseDeDonnees () | |
Attributs privés | |
| QSqlDatabase | db |
| QMutex | mutex |
Attributs privés statiques | |
| static BaseDeDonnees * | baseDeDonnees = NULL |
| static int | nbAcces = 0 |
| BaseDeDonnees::BaseDeDonnees | ( | ) | [private] |
Références db.
Référencé par getInstance().
{
#ifdef DEBUG_BASEDEDONNEES
qDebug() << "<BaseDeDonnees::BaseDeDonnees()>";
#endif
db = QSqlDatabase::addDatabase("QSQLITE");
}
| BaseDeDonnees::~BaseDeDonnees | ( | ) | [private] |
{
#ifdef DEBUG_BASEDEDONNEES
qDebug() << "<BaseDeDonnees::~BaseDeDonnees()>";
#endif
}
| bool BaseDeDonnees::connecter | ( | QString | nomBase | ) |
Référencé par IHMCampusSerre::initialiserBDD().
{
QMutexLocker verrou(&mutex);
if(!db.isOpen())
{
db.setDatabaseName(nomBase);
if(db.open())
{
#ifdef DEBUG_BASEDEDONNEES
qDebug() << QString::fromUtf8("<BaseDeDonnees::connecter()> connexion réussie à %1").arg(db.databaseName());
#endif
return true;
}
else
{
qDebug() << QString::fromUtf8("<BaseDeDonnees::connecter()> erreur : impossible de se connecter à la base de données !");
QMessageBox::critical(0, QString::fromUtf8("Campus Serre"), QString::fromUtf8("Impossible de se connecter à la base de données !"));
return false;
}
}
else
return true;
}
| void BaseDeDonnees::detruireInstance | ( | ) | [static] |
Références baseDeDonnees, et nbAcces.
Référencé par IHMCampusSerre::~IHMCampusSerre().
{
// instance ?
if(baseDeDonnees != NULL)
{
nbAcces--;
#ifdef DEBUG_BASEDEDONNEES
qDebug() << "<BaseDeDonnees::detruireInstance()> nbAcces restants = " << nbAcces;
#endif
// dernier ?
if(nbAcces == 0)
delete baseDeDonnees;
}
}
| bool BaseDeDonnees::executer | ( | QString | requete | ) |
pour les requêtes UPDATE, INSERT et DELETE
Référencé par IHMCampusSerre::modifierConsignes(), et IHMCampusSerre::modifierSeuils().
{
QMutexLocker verrou(&mutex);
QSqlQuery r;
bool retour;
if(db.isOpen())
{
retour = r.exec(requete);
#ifdef DEBUG_BASEDEDONNEES
qDebug() << QString::fromUtf8("<BaseDeDonnees::executer()> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
#endif
if(retour)
{
return true;
}
else
{
qDebug() << QString::fromUtf8("<BaseDeDonnees::executer()> erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
return false;
}
}
else
return false;
}
| BaseDeDonnees * BaseDeDonnees::getInstance | ( | ) | [static] |
Références BaseDeDonnees(), baseDeDonnees, et nbAcces.
Référencé par IHMCampusSerre::initialiserBDD().
{
if(baseDeDonnees == NULL)
baseDeDonnees = new BaseDeDonnees();
nbAcces++;
#ifdef DEBUG_BASEDEDONNEES
qDebug() << "<BaseDeDonnees::getInstance()> nbAcces = " << nbAcces;
#endif
return baseDeDonnees;
}
| bool BaseDeDonnees::recuperer | ( | QString | requete, |
| QString & | donnees | ||
| ) |
pour les requêtes SELECT 1 -> 1
Référencé par IHMCampusSerre::recupererConsignes(), et IHMCampusSerre::recupererSeuils().
{
QMutexLocker verrou(&mutex);
QSqlQuery r;
bool retour;
if(db.isOpen())
{
retour = r.exec(requete);
#ifdef DEBUG_BASEDEDONNEES
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QString)> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
#endif
if(retour)
{
// on se positionne sur l'enregistrement
r.first();
// on vérifie l'état de l'enregistrement retourné
if(!r.isValid())
{
#ifdef DEBUG_BASEDEDONNEES
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QString)> résultat non valide !");
#endif
return false;
}
// on récupère sous forme de QString la valeur du champ
if(r.isNull(0))
{
#ifdef DEBUG_BASEDEDONNEES
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QString)> résultat vide !");
#endif
return false;
}
donnees = r.value(0).toString();
#ifdef DEBUG_BASEDEDONNEES
qDebug() << "<BaseDeDonnees::recuperer(QString, QString)> enregistrement -> " << donnees;
#endif
return true;
}
else
{
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QString)> erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
return false;
}
}
else
return false;
}
| bool BaseDeDonnees::recuperer | ( | QString | requete, |
| QStringList & | donnees | ||
| ) |
pour les requêtes SELECT 1 -> 1..*
{
QMutexLocker verrou(&mutex);
QSqlQuery r;
bool retour;
if(db.isOpen())
{
retour = r.exec(requete);
#ifdef DEBUG_BASEDEDONNEES
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QStringList)> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
#endif
if(retour)
{
// on se positionne sur l'enregistrement
r.first();
// on vérifie l'état de l'enregistrement retourné
if(!r.isValid())
{
#ifdef DEBUG_BASEDEDONNEES
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QStringList)> résultat non valide !");
#endif
return false;
}
// on récupère sous forme de QString la valeur de tous les champs sélectionnés
// et on les stocke dans une liste de QString
for(int i=0;i<r.record().count();i++)
if(!r.isNull(i))
donnees << r.value(i).toString();
#ifdef DEBUG_BASEDEDONNEES
qDebug() << "<BaseDeDonnees::recuperer(QString, QStringList)> enregistrement -> " << donnees;
#endif
return true;
}
else
{
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QStringList)> erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
return false;
}
}
else
return false;
}
| bool BaseDeDonnees::recuperer | ( | QString | requete, |
| QVector< QString > & | donnees | ||
| ) |
pour les requêtes SELECT 1..* -> 1
{
QMutexLocker verrou(&mutex);
QSqlQuery r;
bool retour;
QString data;
if(db.isOpen())
{
retour = r.exec(requete);
#ifdef DEBUG_BASEDEDONNEES
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QVector<QString>)> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
#endif
if(retour)
{
// pour chaque enregistrement
while ( r.next() )
{
// on récupère sous forme de QString la valeur du champs sélectionné
data = r.value(0).toString();
#ifdef DEBUG_BASEDEDONNEES
//qDebug() << "<BaseDeDonnees::recuperer(QString, QVector<QString>)> enregistrement -> " << data;
#endif
// on stocke l'enregistrement dans le QVector
donnees.push_back(data);
}
#ifdef DEBUG_BASEDEDONNEES
qDebug() << "<BaseDeDonnees::recuperer(QString, QVector<QString>)> enregistrement -> " << donnees;
#endif
return true;
}
else
{
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QVector<QString>)> erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
return false;
}
}
else
return false;
}
| bool BaseDeDonnees::recuperer | ( | QString | requete, |
| QVector< QStringList > & | donnees | ||
| ) |
pour les requêtes SELECT 1..* -> 1..*
{
QMutexLocker verrou(&mutex);
QSqlQuery r;
bool retour;
QStringList data;
if(db.isOpen())
{
retour = r.exec(requete);
#ifdef DEBUG_BASEDEDONNEES
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QVector<QStringList>)> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);
#endif
if(retour)
{
// pour chaque enregistrement
while ( r.next() )
{
// on récupère sous forme de QString la valeur de tous les champs sélectionnés
// et on les stocke dans une liste de QString
for(int i=0;i<r.record().count();i++)
data << r.value(i).toString();
#ifdef DEBUG_BASEDEDONNEES
//qDebug() << "<BaseDeDonnees::recuperer(QString, QVector<QStringList>)> enregistrement -> " << data;
/*for(int i=0;i<r.record().count();i++)
qDebug() << r.value(i).toString();*/
#endif
// on stocke l'enregistrement dans le QVector
donnees.push_back(data);
// on efface la liste de QString pour le prochain enregistrement
data.clear();
}
#ifdef DEBUG_BASEDEDONNEES
qDebug() << "<BaseDeDonnees::recuperer(QString, QVector<QStringList>)> enregistrement -> " << donnees;
#endif
return true;
}
else
{
qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString, QVector<QStringList>)> erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);
return false;
}
}
else
return false;
}
BaseDeDonnees * BaseDeDonnees::baseDeDonnees = NULL [static, private] |
Référencé par detruireInstance(), et getInstance().
QSqlDatabase BaseDeDonnees::db [private] |
Référencé par BaseDeDonnees(), connecter(), executer(), et recuperer().
QMutex BaseDeDonnees::mutex [private] |
Référencé par connecter(), executer(), et recuperer().
int BaseDeDonnees::nbAcces = 0 [static, private] |
Référencé par detruireInstance(), et getInstance().
1.7.6.1