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 :

probleme avec un curseur


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Flutter/java/windev/php/javascript
    Inscrit en
    Octobre 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flutter/java/windev/php/javascript
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 87
    Par défaut probleme avec un curseur
    Bonjour, j'ai une fonction stoquée que je créé qui me pause un petit probleme:

    je déclare un curseur sur lequel je boucle pour un traitement mais j'obtiens toujours la même valeur: 1

    cette requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT C.id FROM (SELECT id FROM collections ORDER BY RAND()) C LIMIT 12;
    retourne(par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    134
    47
    57
    117
    174
    133
    175
    184
    121
    151
    179
    100
    ce que je recherche à avoir, jusque là pas de soucis. Maintenant dans cette fonction:

    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
    CREATE PROCEDURE `maj_collection`(IN id INT)
    BEGIN
     
        DECLARE done INT DEFAULT 0;
        DECLARE idcolls INT(10);
        DECLARE curs CURSOR FOR SELECT C.id FROM (SELECT id FROM collections ORDER BY RAND()) C LIMIT 12;
        DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
     
        DELETE FROM collectionephemere;
        OPEN curs;
        REPEAT
            FETCH curs INTO idcolls;
            IF done = 0 THEN
                SELECT idcolls;
            --    INSERT INTO collectionephemere (`collectionephemere`.`idcollection`, `collectionephemere`.`idclient`) VALUES (id,idcolls);
            END IF;
        UNTIL done
        END REPEAT;
     
        CLOSE curs;
     
    END
    j'ai en retour une liste de 12 "1"
    du coup je comprends pas trop d'ou ça peut venir vu que ma requête est bonne (dans le curseur) et qu'il me semble bien l'utiliser dans ma procédure
    je suis plus habitué à oracle mais j'ai des notions en mysql donc si vous avez des questions ou des remarques sur le code n'hésitez pas.

  2. #2
    Membre confirmé
    Homme Profil pro
    Flutter/java/windev/php/javascript
    Inscrit en
    Octobre 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flutter/java/windev/php/javascript
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 87
    Par défaut
    il y avait un conflit entre mon IN "id" et mon select ID dans le curseur... j'ai changé le nom du IN et ça tourne.
    J'aime toujours autant ce forum, quand je post je trouve une réponse dans les heures qui suivent alors que j'ai passé déjà des heures dessus en général ^^ (c'est pas ironique)

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

Discussions similaires

  1. probleme de trigger avec un curseur
    Par moi26 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/06/2009, 13h55
  2. 2 update avec un curseur probleme
    Par loupin dans le forum SQL
    Réponses: 3
    Dernier message: 03/09/2007, 12h05
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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