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 :

Procédure stockée ne renvoyant qu'un seul tableau de résultat(et non plusieurs)!!!


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut Procédure stockée ne renvoyant qu'un seul tableau de résultat(et non plusieurs)!!!
    Bonjour!

    J'ai créé une procédure stockée qui contient un curseur et qui renvoi plusieurs lignes de résultats dans plusieurs tables.

    Dans un formulaire contenant un datagrid je souhaiterai afficher la liste des résultats retournés par la procédure stockée.
    Or le problème est que je ne réussi à afficher que le premier tableau de résultat retourné par l'exécution de la procédure...
    C'est pourquoi je souhaiterai recevoir un seul tableau de résultat afin de facilité mon insertion.

    Voici ma procédure stockée :
    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
     
    CREATE         PROCEDURE ps_s_Rechercher_IdDomIItem
    @like varchar(50)
    as
    DECLARE @nom varchar(50)
    DECLARE @QUERY varchar(5000)
    DECLARE Test2 CURSOR FOR
    SELECT DISTINCT Nom_Table FROM Domaine
    OPEN Test2
    FETCH NEXT FROM Test2 INTO
    @nom
    WHILE @@FETCH_STATUS = 0
    BEGIN
     SET @QUERY = 'SELECT Id_Domaine, Id_'+@nom+', '+@nom+'.'+@nom+' 
    FROM Domaine, '+@nom+' where Domaine.Nom_Table='''+@nom+''' 
    and '+@nom+'.'+@nom+' like ''%'+@like+'%'''
     EXEC(@QUERY)
     FETCH NEXT FROM Test2 INTO
     @nom 
    END
    GO

    Cela fait une semaine que j'essaye de trouver une solution, mais je n'arrive pas...

    Merci d'avance.

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    il faut qu'à chaque passage de ta boucle tu fasses un insert dans une table temporaire que tu auras préalablement créée. et ensuite tu fais le select sur cette table pour te renvoyer les résultats.

  3. #3
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    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
    30
    31
    32
     
     
    CREATE         PROCEDURE ps_s_Rechercher_IdDomIItem
    @like varchar(50)
    as
    -- ici tu crée ta table, je connais pas les types, j'ai mis int et varchar
    CREATE TABLE #Table 
    (colonne1 as int,
    colonne2 as varchar(150),
    colonne3as varchar(150))
     
    DECLARE @nom varchar(50)
    DECLARE @QUERY varchar(5000)
    DECLARE Test2 CURSOR FOR
    SELECT DISTINCT Nom_Table FROM Domaine
    OPEN Test2
    FETCH NEXT FROM Test2 INTO
    @nom
    WHILE @@FETCH_STATUS = 0
    BEGIN
    -- pour chaque nom tu insere dans ta table tempo
     SET @QUERY = 'INSERT INTO #Table (colonne1,colonne2,colonne3)SELECT Id_Domaine, Id_'+@nom+', '+@nom+'.'+@nom+' 
    FROM Domaine, '+@nom+' where Domaine.Nom_Table='''+@nom+''' 
    and '+@nom+'.'+@nom+' like ''%'+@like+'%'''
     EXEC(@QUERY)
     FETCH NEXT FROM Test2 INTO
     @nom 
    END
     
    -- ici tu selectionne toute ta table, tu n'aura qu'un seul jeu de resultat
    SELECT * FROM #Table
    GO

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut
    Mille merci!!!!

    J'ai réussi grace à vous!!!

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

Discussions similaires

  1. [procédure stockée] Requête renvoyant plusieurs lignes avec MySQL
    Par ourseblanche dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 16/01/2010, 17h13
  2. Réponses: 7
    Dernier message: 30/09/2009, 18h50
  3. [procédure stockée] Requête renvoyant plusieurs lignes
    Par ourseblanche dans le forum MySQL
    Réponses: 4
    Dernier message: 21/07/2009, 10h50
  4. procédure stockée pour renvoyer un état dans une application
    Par erickoffi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/10/2005, 19h05

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