Page principale | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier | Pages associées

Référence de la classe DataBase

Gestion base de données. Plus de détails...

#include <DataBase.h>

Liste de tous les membres

Fonctions membres publiques

 DataBase (char *pRepertoire)
 ~DataBase ()
int AddTable (char *pName, int iNbData)
 Ajoute une table.
int DelTable (int iId)
 Supprime une table.
int DelTable (char *pName)
 Supprime une table.
DataBaseTableGetTable (int iId)
 Retourne une table par son Id.
DataBaseTableGetTable (char *pName)
 Retourne une table par son nom.
DataBaseTableGetTableNo (int iPos)
 Retourne une table par sa position.
int GetNbTable ()
 Retourne le nombre de table.
int GetNbInstance ()
 Retourne le nombre d'instance.
char * GetBaseDir ()
 Retourne le repertoire de la base.
int SaveBase ()
 Sauve la base.


Description détaillée

Gestionnaire de base de données avec notion de tables et entrée indexer.

Définition à la ligne 40 du fichier DataBase.h.


Documentation des contructeurs et destructeur

DataBase::DataBase char *  pRepertoire  ) 
 

Charge la base en mémoire.

Paramètres:
pRepertoire repertoire de la base.

Définition à la ligne 17 du fichier DataBase.cpp.

Références DB_REPERTOIRE, et MutexInit().

00018 {
00019     if(!DBInstance)
00020         MutexInit(&DBMutex);
00021 
00022     DBInstance++;
00023 
00024     strncpy(Repertoire, pRepertoire, DB_REPERTOIRE);
00025     NbTable     = 0;
00026     IdMax       = 0;
00027 
00028     LoadTables();
00029 }

DataBase::~DataBase  ) 
 

Libere proprement la mémoire, ne sauve pas la base dans les fichiers.

Voir également:
SaveBase().

Définition à la ligne 31 du fichier DataBase.cpp.

Références MutexStop().

00032 {
00033     for(int i = 0; i < NbTable; i++)
00034         delete Tables[i];
00035     Tables.clear();
00036 
00037     DBInstance--;
00038 
00039     if(!DBInstance)
00040         MutexStop(&DBMutex);
00041 }


Documentation des fonctions membres

int DataBase::AddTable char *  pName,
int  iNbData
 

Ajoute une table avec un nouvelle Id.

Paramètres:
pName nom de la table
iNbData nombre de champs de la table.
Renvoie:
Code d'erreur.
Voir également:
DelTable(), GetTable(), GetTableNo() et GetNbTable().

Définition à la ligne 130 du fichier DataBase.cpp.

00131 {
00132     Tables.push_back(new DataBaseTable(Repertoire, IdMax + 1, iNbData, pName));
00133     if(!Tables[NbTable])
00134         return ERROR_C_MEMORY;
00135         
00136     IdMax++;
00137     NbTable++;
00138     
00139     return ERROR_C_NOERROR;
00140 }

int DataBase::DelTable char *  pName  )  [inline]
 

Supprime la table de nom pName.

Paramètres:
pName nom de la table.
Renvoie:
Code d'erreur
Voir également:
AddTable(), GetTable(), GetTableNo() et GetNbTable().

Définition à la ligne 96 du fichier DataBase.h.

00097     {
00098         for(int i = 0; i < NbTable; i++)
00099         {
00100             if(!strcmp(Tables[i]->GetName(), pName))
00101                 return DelTable(Tables[i]->GetId());
00102         }
00103 
00104         return 0;
00105     };

int DataBase::DelTable int  iId  ) 
 

Supprime la table ayant l'id iId.

Paramètres:
iId Id de la table.
Renvoie:
Code d'erreur.
Voir également:
AddTable(), GetTable(), GetTableNo() et GetNbTable().

Définition à la ligne 142 du fichier DataBase.cpp.

00143 {
00144     int     i;
00145 
00146     if(NbTable > 0)
00147     {
00148         for(i = 0; i < NbTable; i++)
00149         {
00150             if(Tables[i]->GetId() == iId)
00151             {
00152                 Tables.erase(Tables.begin() + i);
00153 
00154                 NbTable--;
00155 
00156                 return ERROR_C_NOERROR;
00157             }
00158         }
00159     }
00160     
00161     return ERROR_C_NOERROR;
00162 }

char* DataBase::GetBaseDir  )  [inline]
 

Retourne le repertoire Repertoire de la base.

Renvoie:
pointeur sur Repertoire.

Définition à la ligne 178 du fichier DataBase.h.

00179     {
00180         return Repertoire;
00181     };

int DataBase::GetNbInstance  )  [inline]
 

Retourne le nombre d'instance de la class (pour multitache).

Renvoie:
nombre d'instance de la class.

Définition à la ligne 169 du fichier DataBase.h.

00170     {
00171         return DBInstance;
00172     };

int DataBase::GetNbTable  )  [inline]
 

Retourne le nombre de table contenu dans la base.

Renvoie:
nombre de table dans la base.
Voir également:
AddTable(), DelTable(), GetTable() et GetTableNo().

Définition à la ligne 160 du fichier DataBase.h.

00161     {
00162         return NbTable;
00163     };

DataBaseTable* DataBase::GetTable char *  pName  )  [inline]
 

Permet l'acces à la table ayant le nom pName.

Paramètres:
pName nom de la table.
Renvoie:
pointeur sur la class de la table.
Voir également:
AddTable(), DelTable(), GetTable(), GetTableNo() et GetNbTable().

Définition à la ligne 130 du fichier DataBase.h.

00131     {
00132         for(int i = 0; i < NbTable; i++)
00133         {
00134             if(!strcmp(Tables[i]->GetName(), pName))
00135                 return Tables[i];
00136         }
00137 
00138         return NULL;
00139     };

DataBaseTable* DataBase::GetTable int  iId  )  [inline]
 

Permet l'acces à la table ayant l'id iId.

Paramètres:
iId Id de la table.
Renvoie:
pointeur sur la class de la table.
Voir également:
AddTable(), DelTable(), GetTable(), GetTableNo() et GetNbTable().

Définition à la ligne 113 du fichier DataBase.h.

00114     {
00115         for(int i = 0; i < NbTable; i++)
00116         {
00117             if(Tables[i]->GetId() == iId)
00118                 return Tables[i];
00119         }
00120 
00121         return NULL;
00122     };

DataBaseTable* DataBase::GetTableNo int  iPos  )  [inline]
 

Permet l'acces à la table étant à la position iPos.

Paramètres:
iPos position de la table.
Renvoie:
pointeur sur la class de la table.
Voir également:
AddTable(), DelTable(), GetTable() et GetNbTable().

Définition à la ligne 147 du fichier DataBase.h.

00148     {
00149         if(iPos < NbTable)
00150             return Tables[iPos];
00151 
00152         return NULL;
00153     };

int DataBase::SaveBase  ) 
 

Sauve toute la base dans les fichiers "DB.sys" et "x.dbt".

Renvoie:
code d'erreur

Définition à la ligne 164 du fichier DataBase.cpp.

Références FileDelete(), MutexLock(), MutexUnLock(), et TRY.

00165 {
00166     int     i;
00167     int     j = 0;
00168     char    Name[DB_BUFFERSIZE];
00169     BEGIN
00170 
00171     MutexLock(&DBMutex);
00172 
00173     for(i = 1; (i <= IdMax) && !CERROR; i++)
00174     {
00175         if(Tables[j]->GetId() == i)
00176         {
00177             TRY CERROR = Tables[j]->SaveEntrys();
00178 
00179             j++;
00180         }
00181         else
00182         {
00183             sprintf(Name, "%s/%i.dbt", Repertoire, i);
00184 
00185             FileDelete(Name);
00186         }
00187     }
00188 
00189     MutexUnLock(&DBMutex);
00190 
00191     TRY CERROR = SaveTables();
00192 
00193     ENDBEGIN
00194 }


La documentation de cette classe a été générée à partir des fichiers suivants:
Généré le Thu Jun 12 09:12:30 2008 pour A.I.F. par  doxygen 1.3.9.1