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 31/10/2011, 09h18   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2009
Messages : 53
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 53
Points : 12
Points : 12
Par défaut Procédure stockée qui renvoie une table

Bonjour,

(J'avais posté dans un autre forum par erreur)


Je débute dans le monde MySQL.

Je planche sur une procédure stockée qui devrait me renvoyer l'ensemble du contenu d'une table.

Je me suis inspiré d'un bout de code trouvé sur le site xxxxxxxx.

Hors le résultat est invariablement la première ligne de la table alors qu'elle en contient plusieurs.

Voici le code:

Code :

Code :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
delimiter |
 
CREATE PROCEDURE listeClients( IN cle TEXT)
 
 
BEGIN
        DECLARE done INT DEFAULT 0;
        DECLARE var_idClient INT;
        DECLARE var_nom TEXT;
        DECLARE var_prenom TEXT;
        DECLARE var_role TEXT;
        DECLARE var_login TEXT;
        DECLARE var_compteurConnexion INT;
        DECLARE var_dateDeNaissance DATE;
        DECLARE var_sexe TEXT;
 
        DECLARE curseur CURSOR FOR
         SELECT 
             IDCLIENT, 
             NOM, 
             PRENOM, 
             ROLE, 
             LOGIN, 
            COMPTEURCONNEXION, 
            DATEDENAISSANCE, 
            SEXE 
          FROM clients;
 
       DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
 
        OPEN curseur;
 
		REPEAT
 
                FETCH curseur INTO var_idClient, var_nom, var_prenom, var_role, var_login, var_compteurConnexion, var_dateDeNaissance, var_sexe;
				IF done = 0 THEN
                        SELECT 
                          var_idClient, 
                          AES_DECRYPT(`var_nom`,cle), 
                          AES_DECRYPT(`var_prenom`,cle),
                          AES_DECRYPT(`var_role`,cle),
                          AES_DECRYPT(`var_login`,cle),
                          AES_DECRYPT(`var_compteurConnexion`,cle),
                          AES_DECRYPT(`var_dateDeNaissance`,cle),
                          AES_DECRYPT(`var_sexe`,cle) ;
					END IF;
			UNTIL done
			END REPEAT;
 
    CLOSE curseur;
END|
 
delimiter ;
J'y ai passé la nuit. et toujours pas de résusltat.

Si je pouvais avoir un peu d'aide.

Merci
rj450 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 15h24   #2
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 870
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 870
Points : 1 355
Points : 1 355
salut,

déja si c'est juste pour renvoyer la table via un select fait le directement...

pas besoin de passer par un curseur pour juste appliquer un décryptage à chaque colonne voulue...

un curseur n'est utile que si tu dois faire des traitements sur d'autres tables en, fonction de ce que tu trouve comme résultats

__________________
Eric Dureuil, développeur web, c/c++, java indépendant
soyons
pensez à mettre et
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h04.


 
 
 
 
Partenaires

Hébergement Web