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

Bases de données Discussion :

Base de données stockée en mémoire


Sujet :

Bases de données

  1. #1
    Membre du Club Avatar de gael21
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 44
    Points : 41
    Points
    41
    Par défaut Base de données stockée en mémoire
    Bonjour!
    j'ai codé un gestionnaire de stock avec Qt en utilisant le "Driver QMYSQL" et en me connectant en local avec le nom direct de la BD "ma_base.sql". Tout fonctionne bien.
    Mais au lieu de renseigner directement ma base de donnees, j'aimerai à la place, renseigner un chemin dynamique car je veux par la suite me servir de l'application "Inno setup" pour le déploiement de mon application.
    SVP j'ai besoin de votre aide pour mettre mon chemin dynamique. Certains exemples de Qt utilisent ":memory" (avec le deux point ":")mais je ne sais pas comment ca marche.

    Coordialement

    Edit: il parait que “: memory:” est un nom spécial pour SQLite. Il créera une base de données temporaire existant entièrement en mémoire jusqu'à la fermeture de la connexion. Si vous souhaitez créer une base de données SQLite permanente sur disque, vous devez indiquer un chemin de fichier complet à setDatabaseName .

    Mais avec MySql, comment je fais pour creer mon chemin dynamique?

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Le plus souvent, MySql (ou MsSQl, ou Oracle) va travailler dans une configuration "client / serveur", ou le "client" sera ton application et MySQL sera le serveur.

    Les énormes avantages de cette configuration sont
    1. que le client (ton application) n'est pas tenue de s'exécuter sur la même machine que celle sur laquelle s'exécute le serveur
    2. qu'un seul serveur peut être contacté par plusieurs clients (généralement même en même temps)

    Le principal inconvénient, c'est que tu ne peux donc pas fournir le chemin absolu vers le dossier dans lequel se trouve le programme MySQL, vu qu'il a "toutes les chances" de ne pas se trouver sur la même machine.

    Pour pouvoir te connecter à ton serveur MySQL, tu dois donc fournir une adresse IP valide, et t'assurer que l'adresse fournie sera accessible depuis la machine sur laquelle s'exécute le programme client.

    Il y a, basiquement, trois possibilités:

    1- Tu peux, bien sur, exécuter le client et le serveur sur la même machine, en utilisant l'adresse "look up" 127.0.0.1 (c'est l'adresse locale du système sur lequel s'exécute l'application).

    Le problème, c'est que cela oblige à installer MySQL sur toutes les machines sur lesquelles tu veux installer ton programme client, ce qui n'est pas forcément possible et qui poserait quelques problèmes si les différentes machines doivent utiliser des données "synchronisées" entre les machines.

    2- Si ton intention est d'installer ton application sur plusieurs machines de la même entreprise, et qu'elles puissent disposer de données synchronisées (au niveau de l'entreprise), il est conseillé d'installer ton serveur MySQL avec ta base de données sur ... un des serveurs de l'entreprise et d'y accéder depuis les autres machines au travers de son IP locale (comprends: l'IP associée au serveur au niveau du réseau d'entreprise)

    3- Si tu veux que ton application puisse être utiisée de manière "itinérante" (par exemple, depuis un ordinateur portable emporté chez le client), il faudra t'assurer que ton serveur MySQL soit accessible depuis internet, ce qui signifie:
    • Ou bien, que tu loue un hébergement quelconque proposant l'accès à MySQL
    • Ou bien, que tu configure le modem fournissant l'accès à internet de ton entreprise de manière à ce qu'il redirige les requetes SQL vers le serveur qui l'exécute.

    La première situation est embêtante, car cela implique que tes données sont "physiquement" stockées "ailleurs", et que tu perds une bonne partie du contrôle que tu peux avoir dessus (si le data center est attaqué, tes données feront partie du lot obtenus par les hackers )

    La deuxième situation est embêtante, car elle donne accès à certaines données de ton entreprise à "à peu près n'importe qui", plaçant ton serveur dans une situation similaire à celle du data center.

    Il y a donc des précautions très importantes à prendre avant de décider de rendre tes données accessibles depuis internet, telles que:
    1. l'authentification (sécurisée) des clients se connectant au serveur
    2. la mise en place d'une "zone démilitarisée" au sein de ton entreprise (si tu envisage de garder tes données "chez toi")
    3. la sécurisation des données par toute une série possibilité que je ne vais pas exposer ici
    4. j'en passe, et sans doute de meilleures


    Ceci étant dit, si tu as un nom DNS (Domain Name Server, comme http://ChezToi.edu), tu peux, normalement utiliser ce nom au lieu de l'adresse IP
    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

  3. #3
    Membre du Club Avatar de gael21
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 44
    Points : 41
    Points
    41
    Par défaut
    Bonsoir et Merci beaucoup pour ces éclaircissements.
    Je le mets en "Résolu" et je pars dans un autre topic pour un petit problème que j'ai rencontré sur Innosetup.
    Merci encore

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 451
    Points : 43 096
    Points
    43 096
    Par défaut
    Si toutes les installations de ton appli seront autonomes, tu peux utiliser SQLite. Tu feras des requêtes SQL sur un fichier stocké sur ta machine. Mais pour un gestionnaire de stock, il est fort probable que tu es besoin d'un serveur SQL sur lequel toutes tes instances se connecteront.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Appliquer des sous-totaux sur des données stockées en mémoire
    Par wyzer dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/04/2011, 10h07
  2. [Toutes versions] Comment travailler sur des données stockées en mémoire, plutôt que sur une feuille
    Par wyzer dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/04/2011, 13h35
  3. Simili base de données mais en mémoire
    Par Louis-Guillaume Morand dans le forum Langage
    Réponses: 12
    Dernier message: 29/07/2007, 21h51
  4. Base de données en mode mémoire
    Par Lebas dans le forum JDBC
    Réponses: 5
    Dernier message: 08/02/2007, 13h26

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