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

Développement SQL Server Discussion :

requete sur bases différentes


Sujet :

Développement SQL Server

  1. #1
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut requete sur bases différentes
    Salut à tous, j'ai une requete bien arude que je ne sais pas construire.

    J'ai, actuellement un dataset (.net) branché sur une base SQL et rempli par une requete spécifique style SELECT A,B,C,... FROM MaTableSQLDans le cas d'une migration d'application, je dois désormais brancher mon dataset, aussi, sur une base propriétaire accessible à travers un driver ODBC.

    Donc en gros il faudra que je modifie ma requete du dataset de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT A,B,C,... FROM MaTableSQL
    UNION
    SELECT Z,Y,X, ... FROM MaSourceODBC.MaTableProprio
    Le tout évidemment en gérant les logins et pwd de connexion ODBC sans que l'utilisateur ait quoique ce soit à saisir.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  2. #2
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Pourquoi ne pas utiliser un linked server dans ce cas ?

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Ca ne marche pas en liant la base ODBC à ton serveur SQL Server ?

    Sinon, tu peux faire deux dataset en .NET, et les merger ensuite depuis le code, ça doit se faire, et ce sera pas forcément plus lent.

    Sinon, d'après ce que j'ai compris, il vaut mieux faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select a, b, c...
    from matable
    union all
    select a, b, c from openrowset(provider, cnxstring, select a, b, c... from matable')
    C'est plus performant, surtout si tu as un filtre dans la requête sur les données distantes.
    On ne jouit bien que de ce qu’on partage.

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    oui, mes requêtes auront des filtres, différent pour chaque requête en plus.

    J'en suis à récupérer le code de la première requête qui fait déjà une trentaine de ligne et je vais essayer d'y greffer dessus la seconde que je dois créer.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Bon j'ai fait quelques tests, non concluant. Comme provider pour openRowSet, j'utilise MSDAOSP, mais j'ai systématiquement une erreur comme quoi le serveur doit être lié.
    Je n'ai pas accès au serveur SQL et le driver ODBC n'est pas installé sur le serveur physique ou tourne le serveur SQL.

    J'ai donc essayer sur mon poste avec un SQLExpress, mais je ne peux pas monter mon ODBC en serveur lié, car apparement le SQLExpress est un 64bits et mon driver n'est compatible que 32bits.

    Faut-il obligatoirement un serveur lié pour openrowset ?
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Pas à ma connaissance.

    Normalement, une fois que tu as indiqué le provider, tu peux spécifier une connexion string "dsn less", qui devrait t'affranchir de la notion de serveur lié.

    A vérifier tout de même, ça fait (TRES) longtemps que j'y a pas touché, et c'était avec SQL Server 2000, ça a peut-être changé depuis !
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Le serveur de prod est un SQL2000 et j'utilise ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM openrowset('MSDAOSP',DSN=toto;uid=titi;pwd=tutu','SELECT ...')
    Ça vient peut-être du fait alors que le driver ODBC n'y est pas encore installé. Il va falloir que je coince l'admin système pour, déjà savoir si le serveur est un 32 ou 64bits, et ensuite pour installer le driver odbc.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  8. #8
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Oui mais il faut quand même que le driver adéquat soit installé dans le serveur.

    Quel est le type de db à accéder en odbc ?

  9. #9
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    base propriétaire SAGE
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  10. #10
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Il faut donc installer les drivers pour accéder à cette db propriétaire et créer une source de données système (ODBC) dans le serveur sql, et openrowset devrait alors fonctionner correctement.

  11. #11
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Je vois aussi que votre connexion string passe par un DSN (ça existe encore ça ? )

    N'oubliez donc pas de le créer dans le panneau de configuration (sources de données 32 bits)
    On ne jouit bien que de ce qu’on partage.

  12. #12
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    ben oui, ça existe encore ! Les connexions ODBC passent par des sources DSN.


    Par contre, mon SQLExpress tourne en 64bits apparemment, comment le faire tourner en 32bits pour pouvoir faire mes tests avant d'attaquer le serveur de prod ? L'instance est modifiable, ou il faut réinstaller une nouvelle instance ?
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  13. #13
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    ben oui, ça existe encore ! Les connexions ODBC passent par des sources DSN.


    Par contre, mon SQLExpress tourne en 64bits apparemment, comment le faire tourner en 32bits pour pouvoir faire mes tests avant d'attaquer le serveur de prod ? L'instance est modifiable, ou il faut réinstaller une nouvelle instance ?
    Selon les drivers, il existe des chaines de connexion DSN-less même pour de l'ODBC.

    En revanche, à part réinstaller SQL Server Express en version 32 bits, je n'ai pas de solution à vous proposer.

    PS : Et chez Sage, ils ont pas de drivers 64 bits ?
    On ne jouit bien que de ce qu’on partage.

Discussions similaires

  1. requete sur base FileMaker
    Par fatima_i dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/04/2009, 17h48
  2. requete sur bases distantes
    Par blures1 dans le forum Requêtes
    Réponses: 5
    Dernier message: 05/07/2006, 17h43
  3. Réponses: 1
    Dernier message: 04/04/2006, 10h28
  4. Réponses: 2
    Dernier message: 10/11/2005, 16h59
  5. Réponses: 3
    Dernier message: 17/05/2004, 17h28

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