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 :

Comment parcourrir toutes lignes d'1 PS


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Comment parcourrir toutes lignes d'1 PS
    Bonjour tout le monde

    Je débute sur SQL Serveur, Et j' ai un petit probléme sur l'exploitation d'1 PS
    Je voudrais savoir comment je peux faire pour balayer toutes les lignes renvoyées par une P.S

    En fait j'ai une procedure PS_ListeSalarie, et j'aurai besoins de faire un traitement pour tous les salariés resultant de PS_ListeSalarie

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    1) Renvoyer les données de la SP dans une table
    2) Ouvrir un curseur sur ladite table
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Merci pour la methode .

    Et voici ce que j'ai mis en place

    J'ai une procédure qui renvoie une liste de Salariés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE procedure [PS_SELECT_CDI] ( @Param1 int, @Param2 [TDate]  )
    as
    Et voici ma procédure qui doit effectuer un traitement sur tous les salariés récuperés par la procédure [PS_SELECT_CDI]
    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
     
    create procedure [PS_SELECT_VAR_CDI] 
     
          CREATE TABLE  #T_PS_SELECT_VAR
           ( ID_Sal int,
    	 MatriculeSalarie  nvarchar(10) ,
    	 Civilite TinyInt,
    	 Nom nvarchar(30),
    	 Prenom nvarchar(20),
    	 DEBUT_CONTRAT  DateTime,
    	 FIN_CONTRAT  DateTime)
     
     
     
        insert into #T_PS_SELECT_VAR   exec  [dbo].[PS_SELECT_CDI]   1 , '01/03/2006' 
     
     
      Declare Cuser_CDI cursor for Select * from  #T_PS_SELECT_VAR
     
      ......

    Mais Je pense que ce doit être juste un probléme d'appel qui rend ma procédure non fonctionnelle

    Merci encore

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Evidement, il faut modifier la SP pour que l'insertion face partie de la procédure stockée.
    Un code comme celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into #T_PS_SELECT_VAR   exec  [dbo].[PS_SELECT_CDI]   1 , '01/03/2006'
    Ne peux pas marcher !

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Points : 90
    Points
    90
    Par défaut
    tu as aussi la possiblité de faire une fonction qui retourne une table

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Pour ma part, c'est ce que je fais, reste à savoir s'il a le droit de créer ou de modifier les procédures stockées !

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Bien que L'idée de faire une fonction qui retourne une table est préferable. Je suis toujours dans le même probléme. comment enregistrer les données, renvoyées par la procedure, dans la table(fonction).

    Si tu pouvais me montrer un simple exemple ça me serai fort utile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Create function FC_LISTE_CDI
    Returns Table
    as
    begin
       ....récupération des données de la procedure PS_SELECT_CDI 
       Return (select * from .... )
    end

    Merci encore

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Il vous suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO T_MATABLE(LISTE DES CHAMPS)
    SELECT DBO.MAFUNCTION()

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Points : 90
    Points
    90
    Par défaut
    tu peux soit travailler à la vollée sur la table retournée avec un curseur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE MyCursor CURSOR 
    FOR 
       SELECT COL1, COL2, COL3 …
       FROM dbo.FC_LISTE_CDI()
    soit l'enregistrer dans une table temporaire et faire ce que tu veux après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * into #MyTable FROM dbo.FC_LISTE_CDI()

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Super

    Merci IG_Snoop & Wolo, ça fonctionne

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 28/10/2010, 17h26
  2. [XL-2003] Comment avoir toutes infos d'une ligne excel en double cliquant dans une textbox
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/05/2010, 01h33
  3. Réponses: 5
    Dernier message: 18/03/2009, 12h11
  4. Réponses: 5
    Dernier message: 24/06/2008, 13h07
  5. Réponses: 2
    Dernier message: 27/04/2008, 11h28

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