IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

débutant: quelle base de donnée (embarquée) avec C++


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 94
    Par défaut débutant: quelle base de donnée (embarquée) avec C++
    Bonjour à tous,

    Voila, je suis étudiant en info et pendant ces vacances je me suis fixé comme objectif de développer un petit utilitaire qui me permetrai de pouvoir gérer les contacts que j'ai avec les entreprises lors de la recherche de stage:

    Je veut faire ça en C++ pour me pefectioner dans ce langage.

    Donc mon petit logiciel devra disposer d'une base de donnée afin de pouvoir stocker toutes ces infos.

    Bon, j'ai lu deux ou trois trucs sur le sujet et on parle souvent de mySql. Le probleme c'est qu'avec cette base il faut installer mySql sur CHAQUE machine sur laquelle je vais installer mon logiciel (Veuillez infirmer si je me trompe).

    Loin de moi l'idee de developper un super logiciel que tout le monde voudrait installer chez lui (il ne tournera probablement jamais que sur ma propre machine), mais bon tant qu'a faire, je préfère faire les choses proprement.
    L'idée c'est au final de developper un fichier d'installation style setup.

    Donc bien sur je pourrais utiliser une BD style Access et un lien (je dev sous environnement linux) mais c'est une solution que j'ai deja expérimentée dans d'autres projets et je préfèrerai faire quelque chose de nouveau ODBC.

    Je poste donc sur ce forum afin d'avoir votre opignon sur le choix de la base de donnée (gratuite bien sur!), la manière de l'attaquer, Enfin bref si c'était vous, vous feriez quoi?

    D'avance merci de vos suggestions.

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Si j'ai bien compris, tu veux une base de données embarquée ?
    Pour pouvoir l'utiliser dans ton logiciel sans avoir besoin d'installer d'autres outils ?

    Dans ce cas, jette un oeil du côté de SQLite : http://www.sqlite.org/

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    la manière de l'attaquer
    Je propose SOCI.

  4. #4
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    bonjour,
    je chercher plus ou moins la meme chose mais pour du C et sans java si possible

    sqlite est super lent

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    le truc c'est que SQLite est ACID compliant...
    quand tu fais 10'000 operations il faut les faire de maniere transactionnelle sinon ca n'a pas de sens et surtout ca ralentit enormement la DB puisqu'il faut faire plein d'operation pour la DB ne se trouve pas corrompu. A noter que tu peux desactiver cette option.

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Ou encore, Microsoft SQL Server Compact Edition (gratuit).
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    c'est sympa SOCI n'empêche, avec un postgresql par exemple.

    En plus il utilise bien les idiomes C++, pour un projet perso dont le but est d'apprendre ce language, c'est une bonne idée.

  8. #8
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,

    Plutôt que de t'enquiquiner avec une base de données, pourquoi ne pas, tout simplement, gérer tes contacts sous forme d'un fichier XML

    Tu utiliserais une DTD pour t'assurer que les données ne sont pas corrompues, libxml ou expat pour assurer la persistance, et tu t'affranchirais de tous système complexe de discution avec une base de donnée... tout en permettant une éventuelle synchronisation de manière portable.

    Au pire, si la "confidentialité" pose problème, rien ne t'empêche d'utiliser un algorithme de cryptage non destructif pour le fichier final: crypage au moment de l'écriture du fichier, décryptage au moment de sa lecture
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    je me repete mais bon...
    Un fichier XML est un format d'echange et surtout pas une base de données !

  10. #10
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    Citation Envoyé par epsilon68 Voir le message
    le truc c'est que SQLite est ACID compliant...
    Mysql avec Innodb l'est aussi il me semble. La même requete avec du php est extremement plus rapide. Je ne pense pas que le problème vienne de la.

    Pour ceux qui connaissent gentoo (un distrib linux), certains logiciels comme eix utilisent sqlite et fonctionnent très bien.

    De ce que j'en ai compris il y aurait deux manière d'utiliser sqlite :
    - jni + lib C
    - recodé entièrement

    mais pour l'instant c'est encore très flou

    Si quelqu'un a d'autre renseignements

    ps par rapport a eix, pour l'instant j'ai un peu du mal a comprendre le code, il ne semble pas utiliser de requete sql pour écrire dans la table

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Citation Envoyé par epsilon68 Voir le message
    Un fichier XML est un format d'echange et surtout pas une base de données !
    Je suis d'accord.
    Le code pour sérialiser/désérialiser des données en XML n'est pas forcément plus simple que celui nécessaire pour les bd, loin de la. Par contre il y a une foule d'avantages à utiliser une bd: tolérance à la panne, gestion de bien plus grandes quantités de données, rapidité (pour ceux qui coderaient des recherches linéaires )...
    Pour ce qui est des bds embarquées que je connais:
    En portable:
    - sqllite
    - firebird (jamais trouvé comment faire mais je sais que c'est possible)
    - mysql, à moins que ce ne soit possible qu'en java, je me souviens juste qu'il existait une sorte de driver alternatif permettant de lancer le processus mysql silencieusement pendant l'exécution d'un programme.
    En windows:
    - Access
    - Microsoft SQL Server Compact Edition ou quelque chose qui ressemble, ce truc a bien du changer 15 fois de nom. A la base ce n'était fait que pour fonctionner sur windows mobile mais avec le tout dernier framework .net microsoft a décidé qu'on pourrait l'utiliser partout.

  12. #12
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    trax44, SOCI a été proposé pour manipuler une base de données SQLite.
    Les deux solutions dont tu parles c'est pour du Java.

  13. #13
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    oui mais dans les sources de sqlite que j'utilise il n'y a plus de trace de java

    si ne je me trompe pas les solutions proposées par zais_ethael

    sont pour la plupart "server" :s

    sinon j'ai trouvé une option pour optimiser mes requetes sur sqlite : preparer les requete et binder des parametres en dynamique

    bench en cours

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    Citation Envoyé par trax44 Voir le message
    Mysql avec Innodb l'est aussi il me semble. La même requete avec du php est extremement plus rapide. Je ne pense pas que le problème vienne de la.
    va voir les discussions pour la database H2. Elle est programmée en Java mais l'auteur explique bien les differences avec DERBY etc, notamment le probleme que j'evoquais.

  15. #15
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Citation Envoyé par trax44 Voir le message
    si ne je me trompe pas les solutions proposées par zais_ethael
    sont pour la plupart "server" :s
    Que neni, il y a vraiment possibilité d'utiliser firebird et mysql en tant que bases de donnée embarquées, mais faut chercher.

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    je confirme, MySql est disponible en base de données embarquées, mais dans le cas d'un logiciel payant, la license est assez chère d'apres mes souvenirs.
    Je prefererais plutot SQLite, il est rapide (au contraire de ce qu'il y a marqué plus haut) et en constante evolution.

Discussions similaires

  1. Quelle base de données utilisez-vous?
    Par PierreDelcroix dans le forum Décisions SGBD
    Réponses: 122
    Dernier message: 15/10/2009, 23h18
  2. Quelle Base de Données pour gérer des documents multimédia ?
    Par Doudy dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 21/01/2007, 20h52
  3. Quelle base de données pour un emploi du temps
    Par edouard21 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 26/10/2005, 22h48
  4. Quelle base de donnée utiliser?
    Par VTwin dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 01/07/2005, 12h34
  5. Création de logiciel, oui, mais quelle base de donnée ?
    Par Acti dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 17/02/2005, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo