[C++] Base de donnée locale - stockage de données ?

Base de donnée locale - stockage de données ? [C++] - C++ - Programmation

Marsh Posté le 09-05-2002 à 14:45:53    

Salut à tous !
 
Je dois réaliser une application qui permet de gérer une médiathèque (mais je ne propose ni de l'argent ni une nuit avec moi contre le code source  :lol: ) et je voulais avoir un petit conseil des C++ guruz qui hantent ce forum  ;)
 
En fait, mon petit problème est de savoir comment stocker proprement les fichiers. J'ai l'habitude de travailler mon petit PHP avec sa base MySQL à côté donc je connais un peu le fonctionnement d'une BDD, mais en C++ ça se complique.
 
En effet, à part stocker mes données dans des fichiers séparés avec un système bidouillé pour pouvoir retrouver mes entrées en les parcourant (nous voilà partis pour des fread, fwrite, fseek, j'en passe et des pires) je ne vois pas trop comment faire pour avoir des données stockées proprement et facilement accessibles.
 
Je voudrais savoir si il est possible en C++ (j'utilise Visual C++ 6.0) de faire une BDD en local, ou quelque chose s'en rapprochant et me permettant d'avoir accès facilement à un champ précis d'une entrée précise etc...
 
Sinon tous vos conseils sont les bienvenus  :)
 
Merci
 
Yann


---------------
“You want weapons? We’re in a library! Books! The best weapons in the world!”
Reply

Marsh Posté le 09-05-2002 à 14:45:53   

Reply

Marsh Posté le 09-05-2002 à 15:14:00    

Ben faut bidouiller toi-même avec des fichiers ou bien utiliser des trucs tout fait genre GDB
http://www.sleepycat.com/docs/reftoc.html

Reply

Marsh Posté le 09-05-2002 à 16:26:09    

On peut gérer des bases de n'importe quel type avec Visual C++, si on utilise les MFC. Ca te simplifiera la tache énormément, peu importe ce qu'on pense des MFC
 
Voici un exemple, tiré du MSDN, qui permet d'extraire et d'ajouter des données à la base Biblio.mdb d'Access :

Citation :


CdbDBEngine      dbeng;
CdbDatabase      dbsBiblio;
CdbRecordset      rstTitles;
CString         strSelect;
 
dbsBiblio = dbeng.OpenDatabase(_T("Biblio.mdb" ));
 
strSelect = _T("Select * From Titles Where Title = 'Using SQL' " );
rstTitles = dbsBiblio.OpenRecordset(strSelect, dbOpenDynaset);
 
if (rstTitles.GetRecordCount() > 0 && rstTitles.GetUpdatable())
   {
   do
      {
      rstTitles.Edit();
      rstTitles.SetField(_T("Year Published" ), COleVariant(1994L));
      rstTitles.Update();
      rstTitles.MoveNext();
      }
   while (rstTitles.GetEOF());
   }  
else
   {
   printf(_T("No such title or table not updatable" ));
   }
dbsBiblio.Close();
 


 
Cet exemple utilise DAO, très efficace pour Access. Pour MySQL, tu devras passer par ODBC via MyODBC.
 
voir sur msdn.microsoft.com pour plus d'infos


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 09-05-2002 à 17:03:44    

Merci, je vais regarder ça de plus près.
 
Par contre dans ton exemple, seul le premier est local non ?
 
Qu'est-ce que DAO ?
 
Est-ce que le fait de se baser sur un fichier access enleve toute portabilité sous UNIX ?
 
Le fait d'utiliser une table access comme ça peut être pas mal je trouve. Par contre je ne connais pas Access, mais je crois qu'il est temps de m'y mettre  :lol:

 

[jfdsdjhfuetppo]--Message édité par coolboarder le 09-05-2002 à 17:25:10--[/jfdsdjhfuetppo]


---------------
“You want weapons? We’re in a library! Books! The best weapons in the world!”
Reply

Marsh Posté le 09-05-2002 à 17:31:36    

coolboarder a écrit a écrit :

Merci, je vais regarder ça de plus près.
 
Par contre dans ton exemple, seul le premier est local non ?
 
Qu'est-ce que DAO ?
 
Est-ce que le fait de se baser sur un fichier access enleve toute portabilité sous UNIX ?
 
Le fait d'utiliser une table access comme ça peut être pas mal je trouve. Par contre je ne connais pas Access, mais je crois qu'il est temps de m'y mettre  :lol:  
 
 



on doit utiliser access pour le projet? :??: :sweat:

Reply

Marsh Posté le 09-05-2002 à 17:37:15    

coolboarder a écrit a écrit :

Est-ce que le fait de se baser sur un fichier access enleve toute portabilité sous UNIX ?




Oui.
GDB c'est plus portable.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed