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 :

appel d'une procédure qui renvoie le résultat d'une requete


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Points : 13
    Points
    13
    Par défaut appel d'une procédure qui renvoie le résultat d'une requete
    Bonjour,
    Je débute dans les procédures stockées sous MYSQL 5.0
    Je souhaite créer une procédure qui sera à terme appellée depuis un script PHP 4.
    Cette procédure doit me renvoyer le résultat d'une requete multilignes multicolones.

    Déjà est-ce possible?
    Et si oui comment?

    J'ai essayé la méthode Curseur :
    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
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `fnoSelectOffre $$
    CREATE PROCEDURE fnoSelectOffre (OUT idOffre CHAR(25), OUT fromDep CHAR(25), OUT toDep CHAR(25))
    BEGIN
    DECLARE idOffre_b CHAR(25);
    DECLARE fromDep_b CHAR(25);
    DECLARE toDep_b CHAR(25);
    DECLARE NOT_FOUND BOOLEAN DEFAULT FALSE;
    DECLARE Curs_1 CURSOR FOR  SELECT idOffres, OF_From_Dep, OF_To_Dep  FROM VL_Offres ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET NOT_FOUND=TRUE;
    SET idOffre_b = '';
    SET fromDep_b = '';
    SET toDep_b = '';
    OPEN Curs_1;
    REPEAT
    FETCH Curs_1 INTO idOffre, fromDep, toDep;
    SET idOffre = idOffre+ idOffre_b;
    SET fromDep = fromDep+fromDep_b;
    SET toDep = toDep+toDep_b;
    UNTIL (NOT_FOUND) END REPEAT;
    CLOSE Curs_1;
    END $$
    DELIMITER ;
    et lorsque j'apelle la procedure de Mysql Comand Line Client...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql> call VLDev.fnoSelectOffre (@idOffre, @From,@To)
    j'ai une erreur 1312 : Procedure can't return a result set in the given context


    idem avec la tentative suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    DELIMITER $$
    DROP PROCEDURE IF EXISTS toto $$
    CREATE PROCEDURE toto ()
    LANGUAGE SQL
    NOT DETERMINISTIC
    BEGIN
    SELECT idOffres, OF_From_Dep, OF_To_Dep  FROM VL_Offres ;
    END $$
    DELIMITER ;
     
     
    mysql > call VLDev.toto();
    J'ai vu qu'il existait la méthode de préparation de requete. mysql_stmt_prepare()
    Faut-il passer par là?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    un detail...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Si l'erreur apparait dans le client en ligne de commande c'est très bizarre.

    Sinon voir ces sujets : http://www.developpez.net/forums/vie...hlight=context

    http://www.developpez.net/forums/vie...=given+context
    Pensez au bouton

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    apparemment les deux solutions fonctionnaient mais nous n'avions pas compilé Mysql avec les option mysql i
    Merci pour vos aides...

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/06/2015, 10h34
  2. [WD17] Créer une procédure qui renvoie plusieurs valeurs
    Par meganulos dans le forum WinDev
    Réponses: 9
    Dernier message: 27/02/2013, 20h21
  3. Réponses: 8
    Dernier message: 24/03/2010, 14h01
  4. Réaliser une macro qui enregistre le résultat d'une requête
    Par boulette85 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/02/2007, 18h36

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