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 :

Appel d'une procédure stockée avec un curseur


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de lapanne
    Inscrit en
    Juin 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 200
    Points : 197
    Points
    197
    Par défaut Appel d'une procédure stockée avec un curseur
    Aprés 2h de recherches avec Google, j'vous écrit parce que je vais aller manger. Ou est le rapport ? yé né sais pas.
    BREF, je vous explique le probleme : Je rempli dynamiquement une variable @chaine qui contient un truk du style "456,54,87,12,1" en vue de faire un SELECT avec un WHERE idBidule in (@chaine).
    ZE probleme is que ensuite cette requete je l'utilise via un curseur et qu'il n'accepte pas ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE CursBase CURSOR
    FOR SELECT * 
    FROM Utilisateurs 
    WHERE Utilisateurs.actif = 1 AND Utilisateurs.id_ResPonsable in @chaine
    Car id_Responsables n'est pas un Varchar
    J'ai pensé utilisé une procédure stockée mais je n'ai pas trouvé comment faire l'appel de cette procédure dans mon curseur.
    A l'aideuuu !

    DONC je pose 2 questions, une réponse à l'une des 2 me suffira :
    -Faire le declare du curseur en "dur" dans le code avec le SELECT IN.
    OU
    -Faire un appel à la procédure stockée qui admet en parametre le @chaine

    EDIT : j'en profite pour affiner la question :
    On fait par exemple un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     WHILE (SELECT * FROM blabla) IS NOT NULL
    BEGIN
       ...
    END


    Peut-t-on utiliser le while avec un procédure stockée (pour le SELECT * FROM blabla) ? Si oui comment ?
    <SplyRock95> c'est quoi ton style?
    <Bat> #bat{height:180cm;weight:160lbs; eye-color:#0000FF; hair-color: #FFFF00;}
    Copyright @ bashfr.org

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Salut,

    perso j'ai rien compris à ta prose...

    Tu expliques que dans @CHAINE, tu as la liste des valeurs à tester, et qu'ensuite tu veux simplement exécuter une requete SELECT qui va chercher dans ta table les enregistrements correspondants ?

    Et ensuite parcourir le résultat de ta requete avec un curseur ?

    Si j'ai tout juste alors il faut faire requete dynamique stockée dans une table puis curseur sur la table :
    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
    22
    23
    24
    25
    26
    27
    28
    29
     
    declare @sql nvarchar(4000)
    declare @chaine nvarchar(4000)
    create table #tmp(id int null, val varchar(10)null)
    set @chaine = '1,2,3,4'
     
    --execution requete dynamique
    set @SQL = 'SELECT * from tata where id in (' + @chaine + ')'
    --insertion resultat dans table temporarire
    INSERT INTO #TMP exec (@sql)
     
    --puis curseur
    declare @id int
    declare @val varchar(10)
     
    declare cur_tmp cursor for
    select id, val from #TMP
     
    open cur_tmp
    fetch next from cur_tmp into @id, @val
    while (@@fetch_status =0)
    BEGIN
    	select @id, @val
    	fetch next from cur_tmp into @id, @val
    END
     
    close cur_tmp
    deallocate cur_tmp
    drop table #TMP

  3. #3
    Membre habitué Avatar de lapanne
    Inscrit en
    Juin 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 200
    Points : 197
    Points
    197
    Par défaut
    Merci pour ta réponse. It's OK now, probleme résolu !
    Désolé de pas avoir été clair.
    Et pis, ça ma aidé pour d'autres trucs ce que tu m'as dis. Enfin bref. Voilà quoi merci !
    <SplyRock95> c'est quoi ton style?
    <Bat> #bat{height:180cm;weight:160lbs; eye-color:#0000FF; hair-color: #FFFF00;}
    Copyright @ bashfr.org

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/02/2013, 16h41
  2. [Débutant] Appel d'une procédure stockée avec paramètre en output
    Par Malainet dans le forum Linq
    Réponses: 5
    Dernier message: 11/02/2013, 16h26
  3. [Débutant] Appel d'une procédure stockée avec paramètres
    Par Bakkach dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/10/2012, 16h41
  4. Appel d'une procédure stockée avec c#
    Par ing_ensi84 dans le forum C#
    Réponses: 3
    Dernier message: 05/01/2012, 10h28
  5. Appel d'une procédure stockée par un vbscript
    Par NicoNours dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/10/2004, 13h53

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