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

MS SQL Server Discussion :

Curseur et OpenQuery


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 25
    Points : 14
    Points
    14
    Par défaut Curseur et OpenQuery
    Bonjour
    Voila j'ai une procédure stockée qui contient un curseur sous SQL Server
    La boucle de mon curseur me permet de récupérer le nom des champs d'une table pour faire un select des champs récupérés.
    Le problème c'est qu'il n'accepte pas d'argument dans mon OPENQUERY :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DECLARE curseur_champs CURSOR
    FOR
       SELECT f1 FROM OPENQUERY(ServerAccess,'SELECT f1 FROM tFE WHERE f0 = ''' + @table + '''')
     
    OPEN curseur_champs
    J'ai aussi essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SET @sql = '''SELECT f1 FROM tFE WHERE f0 = ''' + @table + ''')'
    DECLARE curseur_champs CURSOR
    FOR
       SELECT f1 FROM OPENQUERY(ServerAccess,@sql)
     
    OPEN curseur_champs
    Mais ça ne marche pas non plus...

    Si quelqu'un avait une astuce pour réussir à faire fonctionner ce code, merci.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 865
    Points : 53 021
    Points
    53 021
    Billets dans le blog
    6
    Par défaut
    Copie de l'aide en ligne Microsoft à la description de OPENQUERY :

    Notes
    OPENQUERY n'accepte pas de variables pour ses arguments.
    A +

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par SQLpro
    Copie de l'aide en ligne Microsoft à la description de OPENQUERY :



    A +
    Merci finalement j'ai fait un peu de bricolage pour que ça marche en contrepartie d'une diminution de performances.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 16
    Points : 14
    Points
    14
    Par défaut Tjs pas d'évolution
    Bonjour,

    J'ai le même problème. On ne peut tjs pas mettre de variable dans une instruction openrowset ou openquery ?

    Je pensais a un truc ! Au lieu d'utiliser mes procédure sstockées, pour ce cas précis, je peux peut-etre construire mon select dans VB.NET ?
    Ainsi je batti ma requete comme je veux et je l'execute avec un execute_reader ?

    qu'en pensez-vous ?

    A+

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous pouvez, mais ce n'est pas vraiment pas performant.
    Une base de données ne contient pas que des tables, on peut aussi y créer des procédures stockées ... Cela vous permet de fournir une couche d'abstraction de votre base de données, et de laisser les règles métier dans la base.
    Votre application ne fait qu'accéder à la base.
    De cette sorte, le jour où vous aurez besoin de changer votre application, vous n'aurez besoin de changer que le code de celle-ci, et lorsque vous aurez besoin de changer des règles métier, vous ne toucherez qu'à la base de données.

    @++

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

Discussions similaires

  1. Problème curseur et OPENQUERY
    Par Dadz dans le forum Langage SQL
    Réponses: 1
    Dernier message: 01/03/2007, 17h54
  2. Masquer le curseur en mode MS-DOS
    Par Alex120 dans le forum C
    Réponses: 2
    Dernier message: 10/07/2002, 09h30
  3. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09
  4. Comment masquer le curseur de la souris ?
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/06/2002, 18h54
  5. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09

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