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

Windows Forms Discussion :

Gerer deux bases de donnes dans une meme application


Sujet :

Windows Forms

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut Gerer deux bases de donnes dans une meme application
    Bonjour, j'ai fais une application qui actuellement se connecte a une base access. Cependant je souhaiterai que celle ci soit generique, c'est a dire, que je souhaite offrir le possibilité de mettre du SQL SERVER egalement.
    Quelle est la solution (la meilleur) d'apres vous pour gerer cela.Mettre les parametres qui vont bien dans un fichier de config (connexion string, type de la base), mais dans le code comment faire, des if/eles partout et creer les objets qui vont bien?
    Merci de votre aide

  2. #2
    Membre habitué Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Points : 149
    Points
    149
    Par défaut
    Salut

    tu peux créer un ou deux repértoires BD1 et BD2 dans ton projet et mes y les deux BD et dans ton config tu mes les paramètres exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <connectionStrings>
          <add name="BD1"
              connectionString= .....
              providerName= .... />
          <add name="BD2"
              connectionString= ....
              providerName= .... />
        </connectionStrings>
    après tu crées des méthodes avec des paramètres qui vont recevoir les chaines de requettes, le nom de la BD et selon le contexte dans lequel tu es tu appelles ces fonctions en changeant les paramèrtes etc ...

    Il y a d'autres manière biensûr mais moi c'est ce que je ferai pour commencer et par la suite je change si je trouve des problèmes

    en fin brèf c'est ce que tu vient de dire dans ton message

    Bonne chance
    --<< Il n y a que les clous qui ne plantent pas >>---

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    Citation Envoyé par bobmidou Voir le message
    Salut

    tu peux créer un ou deux repértoires BD1 et BD2 dans ton projet et mes y les deux BD et dans ton config tu mes les paramètres exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <connectionStrings>
          <add name="BD1"
              connectionString= .....
              providerName= .... />
          <add name="BD2"
              connectionString= ....
              providerName= .... />
        </connectionStrings>
    après tu crées des méthodes avec des paramètres qui vont recevoir les chaines de requettes, le nom de la BD et selon le contexte dans lequel tu es tu appelles ces fonctions en changeant les paramèrtes etc ...

    Il y a d'autres manière biensûr mais moi c'est ce que je ferai pour commencer et par la suite je change si je trouve des problèmes

    en fin brèf c'est ce que tu vient de dire dans ton message

    Bonne chance
    qu'entends tu par creer deux repertoires? dans quel but, moi ce que je pensais faire c'est de doubler (uniquement la definition des objets) l'ecriture de mon code avec les types d'objets qui vont bien et de les creer en focntion de ce qui est dans mon fichier de settings.
    Mais je doute que ce soit la meilleure methode.

  4. #4
    Membre habitué Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Points : 149
    Points
    149
    Par défaut
    Salut

    les deux repertoires c'est juste pour mettre tes BDs mais ça n'a pas d'importance et tu peux faire des objet comme tu dis dans ce cas je pense tu crées une classe qui contiendera les objets comme paramettre et quand tu veux manipuler les données tu changera ces paramettres selon les DBs.

    donc essaye ça et si tu trouves des problèmes tu procedera d'une autre façon

    j'avais vu des exemples sur le site de microsoft pour attacher deux BDs à l'application

    va falloir fouiller pour les retrouver

    Bonne chance
    --<< Il n y a que les clous qui ne plantent pas >>---

  5. #5
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut
    Salut,

    le modèle ADO de .NET implémente (entre autres) le design pattern Command (avec les objets DBCommand, DBConnection etc).
    Dans ton cas ce que je ferais c'est créer une façade qui exposerait ta connexion, tes requêtes etc en renvoyant des objets des types abstraits d'ADO (ex. une méthode "GetConnection" qui renvoie un objet DBConnection), dans une classe utilitaire qui serait utilisée par le reste de l'appli. Ensuite dans le corps de cette classe, tu pourrais appeler des méthodes spécifiques à la base utilisée (ex. renvoyer un objet SqlConnection dans le cas de SQL Server), les objets renvoyés étant dérivés des types abstraits, tu pourrais ainsi switcher d'une base à l'autre sans toucher au code client.
    Maintenant, tout ça a des limitations : faire une couche d'accès aux données "générique" est un peu le Saint Graal des développeurs, c'est faisable si tu n'utilises que des requêtes en SQL standard, mais si tu as besoin de fonctions avancées (ex. T-SQL, PL/SQL pour Oracle etc), là t'es marron, sans compter les différences au niveau des pasages de chaînes de caractères (caractères interdits dans Oracle et pas dans SQL Server, convention de nommage des paramètres qui commencent par '@' dans une base et pas dans l'autre etc).
    EN tout cas je te conseille vivement de te pencher sur les design patterns, regarde par ex. ici :
    http://www.dofactory.com/Patterns/Patterns.aspx

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

Discussions similaires

  1. acceder a 2 bases de données dans une meme application
    Par tortuegenie dans le forum ASP.NET
    Réponses: 3
    Dernier message: 07/06/2008, 12h06
  2. [Conception] connexion de deux bases de données dans une page en php
    Par leclone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/04/2007, 15h59
  3. Réponses: 8
    Dernier message: 16/11/2006, 11h15
  4. [HIBERNATE] lier 2 bases de données dans une même table
    Par bondarenko dans le forum Hibernate
    Réponses: 4
    Dernier message: 31/03/2006, 17h01
  5. [VB.NET] lien d'une base de donnée dans une variable
    Par Anubis666 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 19/01/2006, 11h56

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