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 :

Correction d'une procedure stockée simple


Sujet :

SQL Procédural MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Par défaut Correction d'une procedure stockée simple
    Bonjour,

    Je souhaite créer une procédure stockée qui permet de :
    - faire un select id/nom ou le statut est disponible
    - une vérification que le select renvoi bien une valeur de disponible
    - un update du statut de la même table en occupé
    - un renvoi de l'id/nom/id_verification

    Voici le code que j'ai créé (qui ne fonctionne pas) :
    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
     
    CREATE PROCEDURE recup_acces (IN ancien_statut VARCHAR(30), IN nouveau_statut VARCHAR(30), OUT resultat INTEGER(11), OUT id INTEGER(11), OUT nom VARCHAR(100))
    BEGIN
        DECLARE var_id INTEGER;
        DECLARE var_nom VARCHAR(100);
     
        SELECT id,nom INTO var_id, var_nom FROM dispo WHERE statut = ancien_statut LIMIT 1;
     
    	IF var_id IS NULL THEN
                    # LE SELECT NE TROUVE RIEN
    		SET resultat = 1;
    		SET id = NULL;
    		SET nom = NULL;
    	ELSE
    		UPDATE dispo SET statut = nouveau_statut, date = NOW() WHERE ancien_statut = statut AND id = var_id;
    		SET resultat = 0;
    		SET id = var_id;
    		SET nom = var_user;
        END IF;
    END $$
    Merci de votre aide !

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Par défaut
    Au début, il te manque DELIMITER $$Et pour mettre un commentaire, il faut utiliser /* ... */ ou # ...

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Par défaut
    Merci pour ton aide.

    J'ai oublié de signaler que la création de la procédure se passe bien (je passe par PHPMyADMIN et j’insère le DELIMITER directement dans la case en dessous et pour les commentaires je l'ai ajouté juste pour la compréhension lors de l’écriture de mon post) mais elle me renvoit 1 puis toujours NULL.

    J'ai l'impression que le IF ne fonctionne pas.

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Par défaut
    Tu as "OUT id" et "OUT nom", et des colonnes id et nom.
    Apparemment les paramètres ont la priorité.

    Renomme tout correctement ou tu peux faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE PROCEDURE recup_acces (IN ancien_statut VARCHAR(30), IN nouveau_statut VARCHAR(30), OUT resultat INTEGER(11), OUT var_id INTEGER(11), OUT var_nom VARCHAR(100))
    BEGIN
     
        SELECT id,nom INTO var_id, var_nom FROM dispo WHERE statut = ancien_statut LIMIT 1;
     
    	IF var_id IS NULL THEN
                    # LE SELECT NE TROUVE RIEN
    		SET resultat = 1;
    	ELSE
    		UPDATE dispo SET statut = nouveau_statut, date = NOW() WHERE ancien_statut = statut AND id = var_id;
    		SET resultat = 0;
        END IF;
    END $$

Discussions similaires

  1. Récupération des paramètres avec une procedure stockée
    Par samlerouge dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/03/2004, 22h00
  2. Commande d'exécution d'une procedure stockée SQL sur vb
    Par tseg dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/11/2003, 12h47
  3. vue a partir d'une procedure stocké
    Par coucoucmoi dans le forum SQL
    Réponses: 6
    Dernier message: 07/08/2003, 16h03
  4. Ecriture d'une procedure stockée XP
    Par WOLO Laurent dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/07/2003, 13h09
  5. Appel a une procedure stockée en vba
    Par The_Nail dans le forum VBA Access
    Réponses: 36
    Dernier message: 01/04/2003, 16h44

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