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 :

[JDBC]PreparedStatement setNull(...) in SQL WHERE clause


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Points : 120
    Points
    120
    Par défaut [JDBC]PreparedStatement setNull(...) in SQL WHERE clause
    Bonjour a tous.
    Je crée dynamiquement des requêtes SQL du genre:

    update ma_table set mon_champ=? where ma_condition=?
    select * from ma_table where ma_condition=?

    Pour cela, j'utilise des prreparedStatement.
    Une fois la compilation de la requête effectuée, j'attribut les valeurs aux ?
    Seuelement j'ai un gros problème, problème que j'ai retrouvé a de multiples reprises sur différents forum:
    http://forums.java.sun.com/thread.js...40698&tstart=0

    J'attribut les valeurs de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(ma_valeur != null){
         ps.setObject(index, ma_valeur)
    }
    else{
        ps.setNull(index, ma_valeur.type)
    }
    Seulement quand ma valeur est null, ca ne fonctionne pas dans la clause where
    (Il me fais 'where mon_champ = null' au lieu de 'where mon_champ is null' )
    Du coup, ca fonctionne pas...
    Ce qui ne facilite pas les choses, c'est que je sais que mes valeurs dans la clause where sont null qu'une fois que j'ai compilé la requête...
    Apparement, je suis pas le seul a rencontrer ce problème...j'espère que peut être quelqu'un ici a une astuce...
    Je vous remercie d'avance!

    ps: je suis un peu décue que JDBC ne sache pas gérer ca...c'est bien la peine de faire des preparedstatement....
    La naissance est le seul fruit du hasard

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    mais c'est normal ce qui se passe!! c'est à toi en fait à tster la valeur de ta variable et si elle est null, alors tu utilise la preparedStatement
    update machin from toto where var is null
    et sinon, tu fais avec
    vhere var = la_valeur
    Les preparedstatement sont la pour t'éviter d'écrire plusieurs fois la meme requete dont seuls les paramètres changent. C'est au développeur de gérer la structure de la requete.

Discussions similaires

  1. XMLRAD Trivial : clause SQL Where
    Par PCBleu dans le forum XMLRAD
    Réponses: 3
    Dernier message: 29/01/2008, 14h56
  2. [SQL] #1109 - Table inconnue 'ville_latlong' dans where clause
    Par ffoxenn dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/01/2008, 17h06
  3. syntaxe SQL sur clause where
    Par fpecastaing dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 12/03/2007, 15h07
  4. requete pl/sql where clause
    Par megapacman dans le forum PL/SQL
    Réponses: 2
    Dernier message: 06/11/2006, 13h59
  5. [SQL] problème clause where
    Par salirose dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/09/2006, 14h15

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