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 :

[DBF] Tester si une chaîne est vide


Sujet :

JDBC Java

  1. #1
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut [DBF] Tester si une chaîne est vide
    Bonjour,

    Je travaille actuellement avec le pire SGBD que je n'ai jamais rencontré, ça s'appelle DBF et c'est fait par Microsoft...

    Voici mon problème actuel : impossible de tester si une chaîne est vide (la liste des tuples renvoyée est vide).

    En gros voici ma requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT lechamp,id FROM truc WHERE id=15 AND (lechamp='' OR lechamp is NULL)
    Cette requête ne me renvoie aucun résultat.

    Par contre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT lechamp,id FROM truc WHERE id=15
    me renvoie un résultat, que je récupère dans un ResultSet.
    Lorsque sur mon resultset je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultSet.getString(1);
    j'obtiens bien une chaîne vide.


    Si quelqu'un a déjà utilisé une base de données DBF et a déjà eu ce problème, merci de votre aide

    Je voudrais simplement filtrer uniquement les tuples dont la valeur de "lechamp" est une chaîne vide...

  2. #2
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Salut,
    Juste pour essayer, tu pourrais permuter les deux derniéres conditions, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT lechamp,id FROM truc WHERE id=15 AND (lechamp IS NULL OR lechamp='')
    D'ailleurs, même si cela ne resolvait pas ton probleme, je pense que ce serait plus logique, d'abord voir si la valeur est null puis voir si elle est vide.

  3. #3
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par DarkMolo
    Salut,
    Juste pour essayer, tu pourrais permuter les deux derniéres conditions, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT lechamp,id FROM truc WHERE id=15 AND (lechamp IS NULL OR lechamp='')
    D'ailleurs, même si cela ne resolvait pas ton probleme, je pense que ce serait plus logique, d'abord voir si la valeur est null puis voir si elle est vide.
    Je viens de tester, même résultat.
    D'après la requête faite séparément, la variable n'est pas null, c'est une chaîne vide (apparemment, vu que le .equals("") retourne true).

  4. #4
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Je tente juste comme ça ... si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT lechamp,id FROM truc WHERE id=15 AND NVL(lechamp,'')=''
    ?

    (à moins que NVL() n'existe pas pour DBF ?).

  5. #5
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Merci, mais...

    Citation Envoyé par in
    (à moins que NVL() n'existe pas pour DBF ?).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "main" java.SQLException:  [Microsoft] [ODBC dBase Driver] Undefined function 'NVL' in expression...

  6. #6
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    J'ai même tenté avec un PreparedStatement, avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT lechamp,id FROM truc WHERE id=? AND lechamp=?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ps.setInt(1,15);
    ps.setString(2,"");
    Sans résultat...

  7. #7
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Peut être avec len(lechamp)=0 ou length(lechamp)=0 ou...

  8. #8
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par DarkMolo
    Peut être avec len(lechamp)=0 ou length(lechamp)=0 ou...
    Ah j'avais essayé avec length, char_length, character_length, strlen, mais pas avec len, et avec len ça marche !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tester si une variable est vide
    Par christel1982 dans le forum ASP
    Réponses: 13
    Dernier message: 13/09/2006, 12h01
  2. Tester si une cellule est vide
    Par amka dans le forum Access
    Réponses: 1
    Dernier message: 09/08/2006, 16h58
  3. [langage] Comment tester si une chaine est vide
    Par |Bio dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 16h05
  4. Tester si une table est vide
    Par rsc dans le forum SQL
    Réponses: 2
    Dernier message: 01/07/2004, 17h25
  5. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 10h17

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