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

Taglibs Java Discussion :

Transmettre un paramètre à une requête


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Par défaut Transmettre un paramètre à une requête
    Bonjour,

    Je ne vois pas comment mettre une String dans la clause WHERE.

    Je récupère au niveau d'une page JSP un paramètre soumis par la page d'authentification, puis je lance un select avec le paramètre reçu par la seconde page.

    Voici mon bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <c:set var="newUsername" value="${!empty param.username}"/>
    <%--<c:out value="${param.username}"/> --%>
    <sql:query var="applicantInfo" scope="session" dataSource="jdbc:odbc:LeaveRequest">
        SELECT UserName, FirstName, LastName, Email, Tel FROM Users 
        WHERE UserName = ? <sql:param value="${newUsername}"/>
    </sql:query>
    <c:set var="applicantDetails" value="${applicantInfo.rows[0]}"/>
    au niveau de WHERE, ça ne fonctionne pas parce que le paramètre est une chaine de caractères.

    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Par défaut
    Voila, Je reformule ma requête pour être plus claire.
    Qui a une idée, comment utiliser une variable (chaine de caractères) dans une tag sql:query?
    Premièrement, j'assigne une chaine (qui vient d'un paramètre) a une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:set var="newUsername" value="${!empty param.username}"/>
    Puis, j'utilise cette variable au niveau du WHERE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <sql:query var="applicantInfo" scope="session" dataSource="jdbc:odbc:LeaveRequest">
        SELECT UserName, FirstName, LastName, Email, Tel FROM Users 
        WHERE UserName =  ? <sql:param value="${newUsername}"/>
    </sql:query>
    Pourquoi le select ne fonctionne pas?
    Merci.

  3. #3
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Bonjour,

    Je doute fort que ça pourrait vous aider mais généralement en SQL on utilise le mot reservé "LIKE" pour comparer des chaînes de caractères...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Par défaut
    Bonjour Mishulyna,

    J'ai essayé ave LIKE, mais ça ne fonctionne tuojours pas.
    erreur:
    SELECT Email FROM Users
    WHERE Group LIKE ?
    : [Microsoft][ODBC Microsoft Access Driver] Syntax error in WHERE clause.


    le parametre du WHERE est une string, c'est peut etre la raison que ça marche pas!!!!

  5. #5
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Bonjour machipot,

    La recherche de l'utilisateur fonctionnait tout à l'heure, alors "LIKE" n'est pas indispensable, tant mieux: http://www.developpez.net/forums/d12...omprehensible/

    As-tu plusieurs Users du même UserName? "Group" est une valeur unique par utilisateur ou tu recherches une liste d'utilisateurs appartenant au même Group (peut-être il faudrait prévoir une boucle quelque part)?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Par défaut
    Mishulyna,

    J’ai qu'un seul et unique user Name dans la table, mais c'est le SQL qui donne une erreur. Je ne trouve pas comment faire la différence entre un entier et une chaine de caractères au niveau du WHERE.
    Est-ce que le paramètre se fait de la même façon dans les deux cas de figure?
    Integer, ça marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <sql:query var="applicantInfo" scope="session" dataSource="jdbc:odbc:LeaveRequest">
        SELECT UserName, FirstName, LastName, Email, Tel FROM Users 
        WHERE EmployeeID = ? <sql:param value="${sessionScope.employeeID}"/>
    </sql:query>
    string ne marche pas!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <sql:query var="supervisorsInfo" scope="session" dataSource="jdbc:odbc:LeaveRequest">
        SELECT Email FROM Users 
        WHERE Group = ? <sql:param value="${sessionScope.group}"/>
    </sql:query>

Discussions similaires

  1. ajouter un paramètre à une requête
    Par Cram_N7 dans le forum Struts 2
    Réponses: 1
    Dernier message: 24/08/2009, 11h22
  2. paramétrer une requête grâce à un champ de formulaire
    Par fai-glon dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 14/04/2008, 18h41
  3. Passer un paramètre à une requête ?
    Par babu2001 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 27/10/2007, 00h05
  4. transmettre des paramètres à une form
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 07/08/2006, 19h02
  5. Réponses: 2
    Dernier message: 03/05/2006, 17h00

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