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 09/07/2007, 15h00   #1
Invité régulier
 
Inscription : mars 2003
Messages : 21
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 21
Points : 6
Points : 6
Par défaut Procedures stockees, can't return a result set in the given context

bonjour,
Je découvre les procedures stockees dans mysql 5.0.

j'ai suivie scrupuleusement un tutoriel dans phpsolution et je n'arrive pas a sortir un résultat, jai donc essayer quelque chose de plus basique :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
DELIMITER $$
 
DROP PROCEDURE IF EXISTS `lecteurmultimedia`.`test` $$
CREATE DEFINER = `root`@`%`
PROCEDURE `lecteurmultimedia`.`test` ()
SQL SECURITY DEFINER
BEGIN
 
SELECT * FROM lecteurmultimedia.admin ;
END $$
 
DELIMITER ;
que j'appel :
Code :
1
2
3
 
$req = 'CALL lecteurmultimedia.test()';
$query = mysql_query($req,$this->link) OR die(mysql_error());
et immancablement le meme résultat quoi que je fasse

Citation:
PROCEDURE lecteurmultimedia.test can't return a result set in the given context
Avez vous une idée ?
misterniark est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 15h16   #2
Expert Confirmé
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Ta PS fait un select *, et obtient donc un ensemble de résultats (=result set) et ceci pour ne rien en faire: pas de paramètre OUT défini.

De plus, ce result set est inexploitable en l'état: il convient d'utiliser la syntaxe SELECT.....INTO cf: http://dev.mysql.com/doc/refman/5.0/...statement.html
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 15h34   #3
Invité régulier
 
Inscription : mars 2003
Messages : 21
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 21
Points : 6
Points : 6
Merci pour ta réponse rapide qui effectivement m'eclaire un peu.
Mais alors je ne peu pas récuperer un jeu de résultat avec les Procedure ?

ce type de syntaxe n'est donc pas possible ?
Code :
1
2
3
4
 
$quer = mysql_query($req);
while($res = mysql_fetch_assoc($quer))
...
misterniark est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 16h42   #4
Expert Confirmé
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Tout dépend de ce que tu veux en faire de ce result set...

Si c'est pour le balayer complètement pour traiter quelques lignes sans passer par le prog client, utilises un curseur dans la PS.

Si c'est pour le traiter coté client, il faudra de toute manière disposer du result set coté client, donc autant faire une requète en ce sens dans ton php.

Reste à explorer la possibilité de définir un tableau en OUT de la PS.
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 00h02   #5
Invité régulier
 
Inscription : mars 2003
Messages : 21
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 21
Points : 6
Points : 6
Citation:
Reste à explorer la possibilité de définir un tableau en OUT de la PS.
Je pensais a ca oui, a tu un exemple d'implémentation ?

ps: le SELECT * est biensur un test et pas la raison d'etre de ma PS
misterniark est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 09h42   #6
Expert Confirmé
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Citation:
Envoyé par misterniark
Je pensais a ca oui, a tu un exemple d'implémentation ?
Je viens de fouiller un peu la doc, et a priori ce n'est pas possible
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 10h32   #7
Invité régulier
 
Inscription : mars 2003
Messages : 21
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 21
Points : 6
Points : 6
en tous cas merci de d'avoir pris le temps pour moi.
misterniark 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 09h16.


 
 
 
 
Partenaires

Hébergement Web