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

Accès aux données Discussion :

Se connecter à Sql Server ou Oracle dynamiquement


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de dachir
    Inscrit en
    Juillet 2006
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 148
    Par défaut Se connecter à Sql Server ou Oracle dynamiquement
    Bonjour,
    Je développe une application de Gestion pour une société. Le problème, c'est que certaines filiales de cette société utilise Sql Server alors que d'autres utilise Oracle comme SGBD. Vu que ça bataille dur entre les développeurs pour trancher sur le SGDB à retenir, j'aimerais proposer une architecture 3 tiers qui s'affranchit de la BD dans la couche d'accès aux données en utilisant Vb.net comme outils de développement. Malheusement je n'ai qu'une idée vague de comment procéder. Je suis sur que vous pouvez m'aider.
    Merci de votre collaboration.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Dans un fichier de configuration externe, tu stockes la connectionstring ainsi que le type de base.
    Tu crées une méthode qui te renvoie une connexion à ta source de données. Voici une ébauche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public class DataProvider
        {
            // Ici au lieu de mettre "System.Data.SqlClient", tu vas chercher la valeur dans un fichier de configuration.
            private static DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
     
            public static DbConnection CreateConnection()
            {
                DbConnection connection = factory.CreateConnection();
                connection.ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
                connection.Open();
     
                return connection;
            }
     
            public static DbCommand CreateCommand(string commandText)
            {
                DbCommand command = CreateConnection().CreateCommand();
                command.CommandText = commandText;
     
                return command;
            }
    Avec cette approche, tu n'as plus de référence spécifique à la source de données.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre confirmé Avatar de dachir
    Inscrit en
    Juillet 2006
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 148
    Par défaut Ok La connexion n'est plus un problme, mais!!!!!
    Maintenant que la connexion aux diverses bases de données n'est plus un problème, dois je placcer mes procédures stockées et fonctions et triggers dans un assembly? est ce qu'il n'y aura pas de problème de syntaxe entre le PL/Sql et le TSql?
    Merci de votre collaboration.

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Tu peux utiliser un fichier différent pour stocker les procédures, vu que je pense que tu les charges d'un fichier externe. Pour les triggers, tu peux en effet partir sur la solution d'un assembly différent chargé dynamiquement lors de l'éxecution (toujours en fonction de ce même paramètre de config).
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre confirmé Avatar de dachir
    Inscrit en
    Juillet 2006
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 148
    Par défaut wow!!!
    Merci SaumonAgile. Tes réponses sont vraiment agiles. Je crois que j'ai eu solution a mon problème. Au cours de l'implémentation, si je rencontre un problème j'espère que tu seras dans le coin et que tu agiras avec autant d'agilité a mon égard.
    Mais dis moi "Arretes de courrir com ça, tu vas te fatiguer."

    Juste une derniere question: pourquoi seulement les triggers ds un assembly?
    Merci.

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par dachir Voir le message
    Merci SaumonAgile. Tes réponses sont vraiment agiles. Je crois que j'ai eu solution a mon problème. Au cours de l'implémentation, si je rencontre un problème j'espère que tu seras dans le coin et que tu agiras avec autant d'agilité a mon égard.
    Mais dis moi "Arretes de courrir com ça, tu vas te fatiguer."

    Juste une derniere question: pourquoi seulement les triggers ds un assembly?
    Merci.
    En fait dans l'assembly, tu devrais mettre tout ce qu'il n'est pas possible de définir dans le fichier externe, et utilisable par un système générique.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

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

Discussions similaires

  1. Connecter SQL Server vers Oracle
    Par Med_Amiine dans le forum Oracle
    Réponses: 1
    Dernier message: 29/12/2014, 09h26
  2. Scripts de test de SGBD (SQL-Server et Oracle)
    Par chti_juanito dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 24/10/2005, 16h05
  3. migration de données de sql server vers oracle
    Par delphy123 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/09/2005, 13h46
  4. [VB.net] Connection SQL server
    Par WriteLN dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/08/2005, 17h39
  5. Problème de connection à SQL Server
    Par wsangli dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 12/08/2005, 17h19

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