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

JDBC Java Discussion :

Variable chaine de caractères dans une requête SQL


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Par défaut Variable chaine de caractères dans une requête SQL
    Bonjour

    Je travaille sur une requête SQL.

    Je dois récupérer une variable qui contient une chaine de caractères (chahra) puis j'utilise la clause WHERE pour avoir la réponse mais ça ne fonctionne pas, aucune exécution n'est effectuée, comme s'il ne reconnaissait pas la syntaxe.

    Voila la syntaxe que j'ai utilisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        ResultSet res = state.executeQuery("SELECT * FROM tagsi WHERE tag_text ='&chahra' ");
     
        ResultSetMetaData resultMeta3 = (ResultSetMetaData) res.getMetaData();
        message = "";
     
        while(res.next())
        {
             message += "\t" +resultMeta3.getColumnName(1).toUpperCase() +" :  "+res.getObject(1).toString()+ "\t ";
             message += "\n";
     
             message += "\t" +resultMeta3.getColumnName(2).toUpperCase() +" :  "+res.getObject(2).toString()+ "\t ";
             message += "\n";
        }
    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    cette requete donne quelque chose quand tu l'utilise directement dans ton client SQL

  3. #3
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Une chose est sure elle ne cherche pas:

    une variable qui contient une chaine de caractere (chahra)
    mais plutôt les tagsi dont le tag_text vaut précisément '&chahra'.

    Pour des requêtes de type contient il faut utiliser LIKE.

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    keddari si je peux te donner un petit conseil, ce serait d'utiliser des PreparedStatement, cela t'éviteras ce genre d'écueils et les pb d'injection SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    PreparedStatement ps = con.prepareStatement("SELECT * FROM tagsi WHERE tag_text=?");
    ps.setString(1,"&chahra");
    ResultSet rs = ps.executeQuery();

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Par défaut chaine de caractere dans une requete sql net beans
    Bonjour

    Cette requete quand je l'utilise dans sql , je n ai pas besoin de travailler avec une variable , et donc ca marche , le probleme se pose quand j affecte une chaine de caractere a une variable et que j'utilse cette variable dans la clause where de la requete sql qui ne marche pas *
    Merci de me repondre

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Dans le code que tu as donné, il n'y a aucun paramètre variable.

    Tu devrais avoir un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    statement = connection.prepareStatement("SELECT * FROM tagsi WHERE tag_text =?");
    statement.setParameter(1,laValeur);
    resultat = statement.execute();

  7. #7
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    Qu'est-ce que j'ai oublié ? Il me semblait que c'était comme ça que cela se faisait avec un java.sql.PreparedStatement mais cela fait longtemps que je n'ai pas utilisé cette syntaxe

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    heu rien, j'avais pas vu ta réponse

  9. #9
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    Désolé, j'ai eu un vieux doute d'un coup

Discussions similaires

  1. [AC-2010] mettre une condition sur une chaine de caractères dans une requête sql
    Par freeman3869 dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/06/2015, 11h45
  2. [Débutant] Insérer des variables ASP.VB.NET dans une requête SQL
    Par docmaniya dans le forum ASP.NET
    Réponses: 3
    Dernier message: 16/03/2015, 13h20
  3. limitation de caractére dans une requête SQL sous Acces
    Par amka dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/08/2006, 15h15
  4. [SQL] Récupérer des variables de formulaire dans une requête SQL
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2005, 18h44
  5. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02

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