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 :

Erreur sur l'utilisation de DECLARE


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Erreur sur l'utilisation de DECLARE
    Bonjour

    j'ai un soucis depuis hier sur l'utilisation de DECLARE (qui pourtant est un basic, je l'admets)

    voici mon code

    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
    DECLARE @IdUser INT,
    DECLARE @CodeArticle INT,
     
    SET @IdUser = 1,
    SET @CodeArticle = 1,
     
    IF EXIST (SELECT * FROM pannier
              WHERE personnel = @IdUser AND article = @CodeArticle)
       BEGIN
     
           UPDATE pannier
           SET quantite = (SELECT quantite FROM pannier
                           WHERE personnel = @IdUser AND Article = @CodeArticle) + 1
       END
     
    ELSE
       BEGIN
     
            INSERT INTO pannier ('personnel', 'article', 'quantite')
            VALUES (@IdUser, @CodeArticle, 1)
       END
    J'ai vérifie la syntaxe ds la doc de MySQL 5 et j'ai vu plusieurs forum ou ils parlaient des DELIMITER

    J'utilisais auparavant SQL Server et cette syntaxe de déclaration fonctionnait ss problème.

    J'utilise pour info WampServer 2 avec MySQL 5.1

    J'imagine que je ne dois pas etre le premier mais là je cale, et je pense pour une connerie.

    Merci à vous

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Jpetrucci Voir le message
    j'ai un soucis
    Lequel ?
    Quel message d'erreur ?
    Ou quel résultat inattendu ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    l'idée est de tester ce bout de code avt d'en faire une procédure stockée

    j'ai un message d'erreur de syntaxe :

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE @IdUser INT, DECLARE @CodeArticle INT, SET @IdUser = 1, SET @CodeA' at line 1

    je viens de voir que si j'utilise une variable avec @ (ex @var) je ne suis pas obligé d'utiliser DECLARE (ce que je faisais pourtant avec SQL Server, et ca marchait plutôt bien )

    Suis-je obligé de créer ma procédure et de l'exécuter pour pouvoir tester ?
    Je précise que le but des "SET Value = 1" est de vérifier le comportement de la procédure, ils seront bien évidement supprimés à l'avenir et remplacés par des paramètres

Discussions similaires

  1. Erreur sur une declaration de class avec un extends
    Par kkt8 dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 18/11/2010, 16h40
  2. Erreur sur utilisation d'une GtkEntry / GtkDialog
    Par Slookeur dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 17/08/2010, 00h52
  3. Erreur sur une requête en utilisant la fonction somme
    Par TheFantasyRide dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/04/2009, 18h55
  4. erreur sur la declaration
    Par cortex59 dans le forum VB.NET
    Réponses: 7
    Dernier message: 30/04/2008, 21h23
  5. Erreur sur l'utilisation de DrawText
    Par blondelle dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/07/2007, 22h42

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