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 Delphi Discussion :

Gestion d'ouverture ensembles de données


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Gestion d'ouverture ensembles de données
    salut
    dans une application à plusieurs table liées à des SimpleDataset (Ou simplement un q conque ensemble de données ),
    ces ensembles de données sont affichées dans des DBGrids sur plusieurs fenêtres (Fiche Pour chaque table)

    est il préférable d'ouvrir toutes le tables lors de la création de l'application (Ou de la création de la BDD)
    ou
    ouvrir chaque ensemble de données et puis le fermer
    chaque Ouverture/Fermeture de sa propre fiche

    Merci d'avance,

    delrama.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 045
    Points : 40 963
    Points
    40 963
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    est il préférable d'ouvrir toutes le tables lors de la création de l'application (Ou de la création de la BDD)
    ou
    ouvrir chaque ensemble de données et puis le fermer
    chaque Ouverture/Fermeture de sa propre fiche
    Difficile de répondre a cette question , cela va dépendre avant tout du type d'application (mono-poste ou multi)
    dans le cas d'une application mono poste (ie avec paradox) il semblerait qu'il soit plus avantageux d'ouvrir toutes les tables (il y a tellement de mémoire sur un PC maintenant ...)

    par contre dans le cas d'une application multi-poste (donc multi-user) il est évident que, à contrario, il vaut mieux
    1- passer le minimum de données (donc utiliser des querys avec uniquement les champs nécessaires et clause WHERE et pas un SELECT * FROM TABLE)
    donc pas de tables
    2- fermer et ouvrir les datasets qu'en cas de besoins

    C'est personnellement cette dernière option que j'applique .

    Enfin , il y a maintenant la programmation multi-tiers , pour cette dernière technique , je dois avouer que, la maitrisant mal, j'ai quelques doutes et donc continue d'utiliser la même option .
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre éprouvé Avatar de Simara1170
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Avril 2014
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 423
    Points : 1 154
    Points
    1 154
    Par défaut
    Il vaut mieux dans la globalité ne rapatrier que les infos dont t'a besoin.
    Sergio a raison quand il dit que le pc peut garder en mémoire vive toutes les tables sans problème. Mais le souci n'est pas là: si tu a une connexion plutôt lente entre ta DB et toi, il faut vraiment ne garder que le minimum. Sur des petites tables tu ne verras pas de différences significatives, mais dès que tu va tomber sur des tables dans les 10 000 records et plus, tu va pouvoir te faire couler du café avant que le programme termine le traitement.

    Et puis tout rapatrier, c'est sale

    Ensuite, pour l'ouverture/fermeture des tables, si ta DB est attaquée par plusieurs postes, il vaut mieux, à mon avis, fermer les connexions dès que tu peux pour les rouvrir ensuite, ça prend pas beaucoup de temps, et tu va t'éviter les problèmes de lock de table si deux users attaque la base de données simultanément sur la même table...
    Citation Envoyé par deuche
    Il y a encore à peine 150 ans, nous vivions encore comme il y a environ 2000 ans.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Salut,
    merci pour vos réponses

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

Discussions similaires

  1. ensemble de données pas en mode edition
    Par XloX dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/06/2005, 12h17
  2. Problême d'ouverture base de données
    Par comment_ca dans le forum Oracle
    Réponses: 20
    Dernier message: 14/12/2004, 12h39
  3. [DBGrid] Affichage d'un sous-ensemble de données
    Par Jean-Jacques Engels dans le forum Bases de données
    Réponses: 3
    Dernier message: 02/09/2004, 16h31
  4. ensemble de données fermées...
    Par vasaldo dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/06/2004, 16h58
  5. Ensemble de données temporaires
    Par pascalT dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/03/2003, 07h22

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