Wismas  1.1
BTS SN-IR La Salle Avignon 2017
Fonctions membres publiques | Fonctions membres publiques statiques | Fonctions membres privées | Attributs privés | Attributs privés statiques
Référence de la classe BaseDeDonnees

#include <basededonnees.h>

Graphe de collaboration de BaseDeDonnees:
Collaboration graph
[légende]

Liste de tous les membres

Fonctions membres publiques

bool connecter (QString nomBase=DATABASENAME)
bool executer (QString requete)

Fonctions membres publiques statiques

static BaseDeDonneesgetInstance ()
static void detruireInstance ()

Fonctions membres privées

 BaseDeDonnees ()
 ~BaseDeDonnees ()

Attributs privés

QSqlDatabase db
QMutex mutex

Attributs privés statiques

static BaseDeDonneesbaseDeDonnees = NULL
static int nbAcces = 0

Documentation des constructeurs et destructeur

Références db.

Référencé par getInstance().

{
#ifdef DEBUG_BASEDEDONNEES
    qDebug() << "<BaseDeDonnees::BaseDeDonnees()>";
#endif
    db = QSqlDatabase::addDatabase("QMYSQL");
}
{
#ifdef DEBUG_BASEDEDONNEES
    qDebug() << "<BaseDeDonnees::~BaseDeDonnees()>";
#endif
}

Documentation des fonctions membres

bool BaseDeDonnees::connecter ( QString  nomBase = DATABASENAME)

Références db, HOSTNAME, mutex, PASSWORD, et USERNAME.

Référencé par Camera::Camera().

{
    QMutexLocker verrou(&mutex);
    if(!db.isOpen())
    {
        db.setHostName(HOSTNAME);
        db.setUserName(USERNAME);
        db.setPassword(PASSWORD);
        db.setDatabaseName(nomBase);

#ifdef DEBUG_BASEDEDONNEES
        qDebug() << "Hostname : " << db.hostName();
        qDebug() << "UserName : " << db.userName();
        qDebug() << "DataBaseName : " << db.databaseName();
#endif
        if(db.open())
        {
#ifdef DEBUG_BASEDEDONNEES
            qDebug() << QString::fromUtf8("<BaseDeDonnees::connecter()> connexion reussie a %1").arg(db.hostName());
#endif

            return true;
        }
        else
        {
            qDebug() << QString::fromUtf8("<BaseDeDonnees::connecter()> erreur : impossible de se connecter à la base de données !");

            QMessageBox::critical(0, QString::fromUtf8("Wismas"), QString::fromUtf8("Impossible de se connecter à la base de donées !"));

            return false;
        }
    }
    else
        return true;
}

Références baseDeDonnees, et nbAcces.

Référencé par Camera::~Camera().

{
    // 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)

Références db, et mutex.

Référencé par Camera::terminer().

{
    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 requête : %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;
}

Références BaseDeDonnees(), baseDeDonnees, et nbAcces.

Référencé par Camera::Camera().

{
    if(baseDeDonnees == NULL)
        baseDeDonnees = new BaseDeDonnees();

    nbAcces++;
#ifdef DEBUG_BASEDEDONNEES
    qDebug() << "<BaseDeDonnees::getInstance()> nbAcces = " << nbAcces;
#endif

    return baseDeDonnees;
}

Documentation des données membres

BaseDeDonnees * BaseDeDonnees::baseDeDonnees = NULL [static, private]

Référencé par detruireInstance(), et getInstance().

QSqlDatabase BaseDeDonnees::db [private]

Référencé par BaseDeDonnees(), connecter(), et executer().

QMutex BaseDeDonnees::mutex [private]

Référencé par connecter(), et executer().

int BaseDeDonnees::nbAcces = 0 [static, private]

Référencé par detruireInstance(), et getInstance().


La documentation de cette classe a été générée à partir des fichiers suivants :
 Tout Classes Fichiers Fonctions Variables Définitions de type Macros