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

Servlets/JSP Java Discussion :

Insertion de date & Fonction "CAST" de SQL


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 29
    Par défaut Insertion de date & Fonction "CAST" de SQL
    Bonjour,

    J'essaie d'insérer un enregistrement dans une base de données SQL Server, à travers une application web (jsp/servlet), mais j'obtiens ce message:

    Cannot insert the value NULL into column 'DateCreation', table 'GestionDesReclamationsV3.dbo.Reclamations'; column does not allow nulls. INSERT fails.
    J'affiche les valeurs des variables en question et elles ne sont pas nulles.

    J'ai essayé de mettre, après le cast de la requête ci dessous, des dates en dur et toujours rien.

    Alors que quand j'essaie d'exécuter la même requête directement dans l'analyseur de requête de SQL Server, ça passe sans problème.

    Voilà le code d'insertion (la requête est assez longue 26 paramètres):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Requete =  "INSERT INTO Reclamations ";
    Requete = Requete  + "   (NumSeq, ReferenceReclamation, LangueReclamation, Statuts, CodeSource, CodeTypeReclamation, CodeFonctionTraitement, CodeFonctionSaisie, Resume, ";
    Requete = Requete  + "   MatriculeTraitement, CodeFonctionSuivi, Objectifsuivi, IntituleReclamant, TypeReclament, CodeTypeClient, CodeGuichget, NCin, NCompte, "; 
    Requete = Requete  + "   AdresseReclamant, CodeVille, CodePays, CodePostal, Rappel,  DateReception, DateCreation, MatriculeSaisie )";
    Requete = Requete  + " VALUES     ( "+ NumSeq +",'" +  ReferenceReclamation+  "','" + LangueReclamation +  "','"+ Statuts+"'," + CodeSource.getCle()+  "," + CodeTypeReclamation.getCle() +  "," + CodeFonctionTraitement.getCle()+  "," +CodeFonctionSaisie.getCle()+  ",'"+Resume +  "'," ;
    Requete = Requete  +  "MatriculeTraitement.getCle() +  "," + CodeFonctionSuivi.getCle()+  ",'" + Objectifsuivi+  "','" + IntituleReclamant+  "','" + TypeReclament+  "'," + CodeTypeClient.getCle()+  "," + CodeGuichget.getCle()+  ",'" + NCin+  "','" + NCompte+  "','" ;
    Requete = Requete  +  "AdresseReclamant +  "'," + CodeVille.getCle()+  "," + CodePays.getCle()+  ",'" + CodePostal+  "'," +  Rappel+  ",CAST('"+ DateReception +"' AS datetime),CAST('"+ ObjDate.ToDay("dd/MM/yyyy") +"' AS datetime), '" +  MatriculeSaisie +"')";
    try{
      s.executeUpdate(Requete);
    }
    catch(SQLException e) {
      System.out.println(e.getMessage());
    }
    Si vous y comprenez quelque chose parce que franchement pour moi c'est le noir total.

    Merci

  2. #2
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Tu te trompes de section,
    ce n'est pas parceque tu veux excuter ta requête à partir d'une jsp que tu es dans le bonne section mais bien un problème SQL.

    Et ton message d'erreur est assez claire

    tu tentes d'inserer la valeur null pour le champ 'DateCreation' qui correspond apparement à CAST('"+ ObjDate.ToDay("dd/MM/yyyy") +"' AS datetime)

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 29
    Par défaut
    Citation Envoyé par link256 Voir le message
    Tu te trompes de section,
    ce n'est pas parceque tu veux excuter ta requête à partir d'une jsp que tu es dans le bonne section mais bien un problème SQL.

    Et ton message d'erreur est assez claire

    tu tentes d'inserer la valeur null pour le champ 'DateCreation' qui correspond apparement à CAST('"+ ObjDate.ToDay("dd/MM/yyyy") +"' AS datetime)
    J'ai posté ici parce que

    Alors que quand j'essaie d'exécuter la même requête directement dans l'analyseur de requête de SQL Server, ça passe sans problème.

  4. #4
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    SI tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(Requete);
    cela donne quoi comme résultat ? peux tu le montrer

    et ensuite le copier dans l'analyseur de requête de SQL Server pour nouveau test

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 29
    Par défaut
    C'est exactement ce que je fais avant de tester sur l'analyseur.

    Voilà le résultat du System.out.println(Requete)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO Reclamations    (NumSeq, ReferenceReclamation, LangueReclamation, 
    Statuts, CodeSource, CodeTypeReclamation, CodeFonctionTraitement, CodeFonctionSaisie, Resume,    
    MatriculeTraitement, CodeFonctionSuivi, Objectifsuivi, IntituleReclamant, TypeReclament, CodeTypeClient, 
    CodeGuichget, NCin, NCompte,    AdresseReclamant, CodeVille, CodePays, 
    CodePostal, Rappel,  DateReception, DateCreation, MatriculeSaisie ) VALUES     ( 0,'901002628102009','F','A',2,19,1203,1209,
    'aaaaaaaaaaaaaaaaa',0,1202,'1','','N',0,0,'GH13245','','aaaaaaaaa'
    ,9,1,'46578',0,CAST('28/10/2009' AS datetime),CAST('28/10/2009' AS datetime), '0093658')

Discussions similaires

  1. [MySQL] Problème insertion lors de la présence de double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/01/2007, 18h23

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