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

MFC Discussion :

un CDatabase, plusieurs CDatabase?


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut un CDatabase, plusieurs CDatabase?
    Bonjour,

    J'ai une appli qui fonctionne avec plusieurs CDatabase. En gros un CDatabase sert à faire les select avec CRecordset, plusieurs CRecordset ouverts pour un CDatabase. Et un CDatabse sert à faire des update et insert au travers de ExecuteSQL du second CDatabase.

    Les deux CDatabase sont ouverts vers la même base. La question que je me pose: ne serait-il pas plus intéressant d'avoir un seul CDatabase qui effectue "en même temps" le parcours des CRecordset et les ExecuteSQL?

    Qu'en pensez-vous?

    Merci.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Dans le projet où j'avais bossé, on avait un CDatabase pour chaque connexion tapant dans les mêmes tables. Est-ce que c'est + intéressant ? Je ne sais pas. Par rapport à quel critère ?

  3. #3
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    Salut,

    Merci de ta réponse.

    Je pense essentiellement par rapport à la gestion des ressources, des performances. J'ai "seulement" 2 CDatabase pour toute l'application. Un sert pour les CRecordset et l'autre pour les update/insert. Je passe une référence au CDatabase nécessaire à chaque méthode/fonctions. J'ouvre les 2 connexions à la db au démarrage de l'application et je les ferme à la sortie de l'application.

    Ma question est finalement: dois-je passer à un seul CDatabase qui fait à la fois les select et les update/insert, pour des raisons de performances, gestion des ressources?
    Un Open en début d'appli et un close en fin d'appli vous semble plus efficace plutôt que des suites d'open/close?

  4. #4
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Salut,

    C'est toute la question du mode connecté et du mode déconnecté. Travailler en mode déconnecté a l'avantage de limiter les risques de déconnexion intempestive, mais l'ouverture et la fermeture des connexions peut prendre du temps, surtout si les requêtes sont nombreuses.

    En ce qui me concerne, j'ai adopté un mode mixte : je suis en mode déconnecté, sauf quand je sais que, sur une période très courte, j'ai de nombreuses requêtes à faire. Dans ce cas, je reste provisoirement en mode connecté.

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Je pense que c'est aussi à mettre en perspective avec qui va avoir accès à la database : une seule instance de ton application cliente ou éventuellement beaucoup de client ? Après, rien ne vaut un bench.

  6. #6
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    Il n'y aura que quelques instances de l'application. Actuellement je suis en mode connecté et j'ai à plusieurs endroits des tests "IsOpen()" sur les 2 CDatabase. Si false je fais un nouveau "Open".

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/05/2008, 08h38
  2. [CDatabase] Surcharge de l'opérateur =
    Par SmOkEiSBaD dans le forum MFC
    Réponses: 9
    Dernier message: 20/05/2008, 09h50
  3. Réponses: 10
    Dernier message: 30/04/2008, 16h16
  4. Réponses: 1
    Dernier message: 30/04/2008, 09h30
  5. Réponses: 8
    Dernier message: 23/03/2005, 19h28

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