[C++] Base de données
Wazza6
Messages postés
202
Statut
Membre
-
Wazza6 Messages postés 202 Statut Membre -
Wazza6 Messages postés 202 Statut Membre -
Bonjour,
J'ai fait une petite classe qui gère la base de données et une fonction qui récupère des données d'une base de données. Voici le code de ma fonction:
Ma classe:
et ma structure(entry)
Mon problème, c'est que j'ai une fonction qui exécute load jusqu'à ce que db.is_eof() (ou db est un objet de type database) soit vrai. Mais il ne s'exécute toujours qu'une fois. Cela fait environ une semaine que j'essais de trouver le problème mais je ne trouves rien.
Quelqu'un saurait ce qui pourrait être la cause de cette erreure?
P.S. Quand je l'ouvre en debug je remarque souvent que database::pos._MyOff =-1 dès que la boucle s'est exécutée au moins une fois. Et quand j'écris les données j'obtiens
Nom|1|1|10|10|10|TypeNom
J'ai fait une petite classe qui gère la base de données et une fonction qui récupère des données d'une base de données. Voici le code de ma fonction:
entry database::load()
{
char tmp[1];
entry data;
ifstream file(filename, ios::binary);
if(!file)
exit(1);
if(load_amount!=0)
file.seekg(pos);
file.read(data.name, 26); //Name
file.read(tmp,1);
//file.read(doublebuff, sizeof(double)); //Amount
file>>data.amount;
file.read(tmp,1);
file>>data.cash; //Cash
file.read(tmp,1);
file>>data.date; //Date
file.read(tmp,1);
file>>data.month; //Month
file.read(tmp,1);
file>>data.year; //Year
file.read(tmp,1);
file>>data.type;
file.read(tmp,1);
pos=file.tellg();
if(file.eof())
eof=true;
load_amount++;
return data;
}
Ma classe:
class database
{
private:
const char* filename;
streampos pos;
bool eof;
int load_amount;
int eof_error;
public:
database(const char* filename);
int save(char* name, double amount, double cash, int date, int month, int year, char* type);
int save(entry data);
entry load();
void clear();
bool is_eof();
~database();
};
et ma structure(entry)
struct entry
{
void write();
char name[26];
char type[10];
double amount;
double cash;
int month;
int date;
int year;
};
Mon problème, c'est que j'ai une fonction qui exécute load jusqu'à ce que db.is_eof() (ou db est un objet de type database) soit vrai. Mais il ne s'exécute toujours qu'une fois. Cela fait environ une semaine que j'essais de trouver le problème mais je ne trouves rien.
Quelqu'un saurait ce qui pourrait être la cause de cette erreure?
P.S. Quand je l'ouvre en debug je remarque souvent que database::pos._MyOff =-1 dès que la boucle s'est exécutée au moins une fois. Et quand j'écris les données j'obtiens
Nom|1|1|10|10|10|TypeNom
A voir également:
- [C++] Base de données
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Base de données vide tnt - Forum TNT / Satellite / Réception
- Tnt base de données vide - Forum TV & Vidéo