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

PostgreSQL Discussion :

[JDBC] Problème avec l'insertion d'un champ Null


Sujet :

PostgreSQL

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut [JDBC] Problème avec l'insertion d'un champ Null
    Bonjour à toutes et à tous,

    Je vais vous expliquer mon problème. J'ai une table avec des mot clé (un thésaurus). Donc il y a des mots pères et d'autre fils. Chaque mot possède un identifiant, un libelle ainsi que l'identifiant de son mot père (normal jusque là).

    Le souçi c'est que les mots "racines" n'ont pas d'identifiant père. Donc il suffit d'insérer la valeur null dans le champs idfpere mais après moult essai j'ai été voir la FAQ JDBC et j'ai essayé ce qui étais marqué ce qui me donne comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RequeteMot = "INSERT INTO CDmotcle (idf, idfpere, libelle, commentaire, validation) VALUES (nextval(\'idf\'), ?, \'"+mot+"\', \'"+commentaire+"\', \'FALSE\');";
    PreparedStatement stMot = bdd.prepareStatement(RequeteMot);
    stMot.setNull(2);
    Mais cela me donne l'erreur suivante :

    cannot resolve symbol
    symbol : method setNull (int)
    location: interface java.sql.PreparedStatement
    stMot.setNull(2);

    Si vous pouviez m'aider car là je bloque sachant que j'ai essayer d'autres choses auparavant comme enregistrer la valeur NULL sans les quotes comme en PHP par exemple ...

  2. #2
    Membre expérimenté Avatar de budtucker
    Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Avril 2007
    Messages : 176
    Par défaut
    Peut être qu'en appelant tout simplement pas idfpere lors de ton insertion, ça suffirait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO CDmotcle (idf, libelle, commentaire, validation) VALUES (nextval(\'idf\'), \'"+mot+"\', \'"+commentaire+"\', \'FALSE\');"

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut
    Bonne idée mais j'avais déjà essayer, lorsque l'on fait ca PostgreSQL nous renvoie gentiment ce message :

    ERROR: invalid input syntax for integer: ""

    Donc ca ne marche pas, si quelqu'un à une autre idée je suis preneur ^^.

  4. #4
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    ce ne serait pas plutôt parce que tu passes 2 à setNull() alors qu'il n'y a qu'un paramètre dans la requête paramétrée ? Ce ne devrait pas être 1 ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre expérimenté Avatar de budtucker
    Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Avril 2007
    Messages : 176
    Par défaut
    Autant mettre -1 à la valeur integer. Tu la traites ensuite dans ton code.

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut
    GrandFather tu as raison c'est bien 1, erreur bête mais l'erreur reste la même :"

    cannot resolve symbol
    symbol : method setNull (int)
    location: interface java.sql.PreparedStatement
    stMot.setNull(1);

    Je pense que je vais opter pour la solution du -1 même si j'aurai bien voulu trouver la solution pour insérer une valeur null dans un champs de type Integer.

    En tout merci pour vos réponse.

  7. #7
    Membre expérimenté Avatar de budtucker
    Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Avril 2007
    Messages : 176
    Par défaut
    Pourquoi ne pas mettre directement null dans ton SQL. Je viens de faire le test, et ça marche très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO CDmotcle (idf, idfpere, libelle, commentaire, validation) VALUES (nextval(\'idf\'), NULL, \'"+mot+"\', \'"+commentaire+"\', \'FALSE\');";
    Dans tous les cas, comme pour le -1, il faudra traiter par la suite dans ton code.

    A+

  8. #8
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut
    Pour information sous PostgreSQL, la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into CDmotcle values (nextval('idf'),NULL,'Test','terme racine',TRUE);
    fonctionne très bien

  9. #9
    Membre expérimenté Avatar de budtucker
    Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Avril 2007
    Messages : 176
    Par défaut
    Où est le problème alors ?? Il suffit de remplacer ton "?" par Null dans ta variable RequeteMot étant donné que c'est un String.

    Où alors j'ai pas bien saisis !!!

  10. #10
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut
    Non ca ne veut vraiment pas ... je comprends pas là. La requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "INSERT INTO CDmotcle (idf, idfpere, libelle, commentaire, validation) VALUES (nextval(\'idf\'), NULL, \'"+mot+"\', \'"+commentaire+"\', \'FALSE\');";
    ne passe pas ... j'ai toujours l'erreur : org.postgresql.util.PSQLException: ERROR: invalid input syntax for integer: ""

    Je comprends vraiment pas là ...

Discussions similaires

  1. Problème avec un INSERT
    Par nnj dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/08/2006, 15h51
  2. [JDBC]Problème avec PreparedStatement
    Par tomca dans le forum JDBC
    Réponses: 15
    Dernier message: 08/07/2005, 13h59
  3. Réponses: 5
    Dernier message: 19/08/2004, 11h11
  4. [MFC] problème avec les insertions dans CComboBox
    Par Joeleclems dans le forum MFC
    Réponses: 12
    Dernier message: 11/06/2004, 15h31
  5. [JDBC] Problème avec les accents
    Par seawolfm dans le forum Administration
    Réponses: 2
    Dernier message: 29/01/2004, 14h56

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