#include <DataBase.h>
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. | |
DataBaseTable * | GetTable (int iId) |
Retourne une table par son Id. | |
DataBaseTable * | GetTable (char *pName) |
Retourne une table par son nom. | |
DataBaseTable * | GetTableNo (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. |
Définition à la ligne 40 du fichier DataBase.h.
|
Charge la base en mémoire.
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 }
|
|
Libere proprement la mémoire, ne sauve pas la base dans les fichiers.
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 }
|
|
Ajoute une table avec un nouvelle Id.
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 }
|
|
Supprime la table de nom pName.
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 };
|
|
Supprime la table ayant l'id iId.
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 }
|
|
Retourne le repertoire Repertoire de la base.
Définition à la ligne 178 du fichier DataBase.h. 00179 {
00180 return Repertoire;
00181 };
|
|
Retourne le nombre d'instance de la class (pour multitache).
Définition à la ligne 169 du fichier DataBase.h. 00170 {
00171 return DBInstance;
00172 };
|
|
Retourne le nombre de table contenu dans la base.
Définition à la ligne 160 du fichier DataBase.h. 00161 {
00162 return NbTable;
00163 };
|
|
Permet l'acces à la table ayant le nom pName.
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 };
|
|
Permet l'acces à la table ayant l'id iId.
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 };
|
|
Permet l'acces à la table étant à la position iPos.
Définition à la ligne 147 du fichier DataBase.h. 00148 { 00149 if(iPos < NbTable) 00150 return Tables[iPos]; 00151 00152 return NULL; 00153 };
|
|
Sauve toute la base dans les fichiers "DB.sys" et "x.dbt".
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 }
|