Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/03/2006, 13h39   #1
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
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 :
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 :
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 :
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
audreyc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 14h02   #2
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 773
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 773
Points : 14 300
Points : 14 300
un detail...
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 14h41   #3
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
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/viewtopic.php?t=441207&highlight=context

http://www.developpez.net/forums/viewtopic.php?t=411558&highlight=given+context
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 14h02   #4
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
apparemment les deux solutions fonctionnaient mais nous n'avions pas compilé Mysql avec les option mysql i
Merci pour vos aides...
audreyc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h41.


 
 
 
 
Partenaires

Hébergement Web