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

SQL Procédural MySQL Discussion :

Curseur qui répète la même ligne


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 96
    Par défaut Curseur qui répète la même ligne
    Bonjour,
    Voila, je voudrais faire marcher une procédure stockée mais j'ai un petit problème.
    Donc, ma procédure s'affiche mais je voudrais afficher toutes les lignes de ma table mais elle affiche 13 fois la même ligne.
    Voici le code :

    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
     
    DROP PROCEDURE 'Liste_Membres'//
    CREATE DEFINER=''@'' PROCEDURE 'Liste_Membres'()
    BEGIN
            DECLARE done INT DEFAULT 0;
            DECLARE var_Id INT(11);
            DECLARE var_Pseudo VARCHAR(32);
            DECLARE var_Mdp VARCHAR(40);
            DECLARE var_Mdp_verif VARCHAR(40); 
            DECLARE var_Mail VARCHAR(100);
            DECLARE var_Mail_verif VARCHAR(100);
            DECLARE var_Date_naissance VARCHAR(11);
            DECLARE var_Statut VARCHAR(255);
            DECLARE curseur1 CURSOR FOR SELECT Id, Pseudo, Mdp, Mdp_verif, Mail, Mail_verif, Date_naissance, Statut FROM inscription;
            DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done= 1;
     
            OPEN curseur1;
     
            REPEAT
                    FETCH curseur1 INTO var_Id, var_Pseudo, var_Mdp, var_Mdp_verif, var_Mail, var_Mail_verif, var_Date_naissance, var_Statut;
                    IF done = 0 THEN
                            SELECT var_Id, var_Pseudo, var_Mdp, var_Mdp_verif, var_Mail, var_Mail_verif, var_Date_naissance, var_Statut FROM inscription;
                    END IF;
            UNTIL done
            END REPEAT;
     
            CLOSE curseur1;
    END
    Je ne vois pas l'erreur qui fait que j'affiche 13 fois la 1ere ligne de ma table.
    Si quelqu'un voit l'erreur.
    D'avance merci.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Par défaut
    Bonjour,

    Ne voyant pas l'erreur j'ai testé votre code sur une table d'une seule colonne.

    Chez moi ça marche sans problème, je ne rencontre pas votre erreur.

    Par ailleurs, notez que pour votre requête, uns simple requête de type SELECT devrait suffire. L'utilisation d'un curseur est rarement souhaitable avec MySQL en raison des lacunes dont il souffre. Ce curseur est READ ONLY par exemple.

Discussions similaires

  1. [XL-2007] Boucle qui repète la même ligne ?
    Par scoulibri dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 18/03/2015, 14h29
  2. [AC-2003] Requete qui affiche plusieurs enregistrements sur une même ligne
    Par Stef999 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/12/2011, 16h19
  3. Réponses: 4
    Dernier message: 13/06/2011, 17h41
  4. [XL-2003] supprimer des lignes qui ont les même valeurs
    Par Neptune64 dans le forum Excel
    Réponses: 1
    Dernier message: 09/08/2009, 00h30
  5. [XL-2003] Adapter Formule qui fait référence à une cellule sur la même ligne
    Par toukii dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/06/2009, 00h25

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