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 :

Requête update qui ne fonctionne pas


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Par défaut Requête update qui ne fonctionne pas
    Bonsoir, ou plutôt bonjour,

    J'aimerais effectuer une requête de modification dans ma BDD, mais je me retrouve avec le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L'instruction SQL à exécuter ne peut être ni vide ni null
    Dans mon apllication c'est ma 1ere requête UPDATE, donc peut être que je n'ai pas saisi son fonctionnement.

    En faite dans mon formulaire, il n'y a aucun champ obligatoire, donc si en validant l'ensemble des champs sont vides, je voudrais que la requête s'execute quand même.

    Voici la méthode qui fait me permet de lancer ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    public boolean requeteModifMaterielBDetail(int fournisseur, String energie, String mat, String tablier, String roue,int horametre,
    			int capacite,int fourche, int poids,String moteur, int longueurHt, int hauteur, int largeur, int longueurFourche,
    			int sectionFourche, String galet, String jante, String option, String definition, String autre) {
     
    		try {
    			queryAjoutMaterielBis  = "UPDATE materiel SET energie_materiel = ?, mat_materiel = ?, tablier_materiel = ?, roue_materiel = ?,";
    			queryAjoutMaterielBis += " heure_materiel = ?, capacite_materiel = ?, fourche_materiel = ?, moteur_materiel = ?,";
    			queryAjoutMaterielBis += " longueur_hors_tout_materiel = ?, hauteur_basse__materiel = ?, largeur_materiel = ?, longueur_fourche_materiel = ?,";
    			queryAjoutMaterielBis += " section_fourche_materiel = ?, galet_materiel = ?, jantes_materiel = ?, option_materiel = ?,";
    			queryAjoutMaterielBis += " definition_materiel = ?, autre_materiel = ?, num_fournisseur = ?)";
    			queryAjoutMaterielBis += " WHERE num_parc = (SELECT MAX(num_parc) from materiel)";
     
    			//Préparation de la requête avec les données renvoyées par le formulaire d'authentification
    			PreparedStatement stm = sqlc.prepareStatement(queryAjoutMateriel);
    			stm.setString(1, energie);
    			stm.setString(2, mat);
    			stm.setString(3, tablier);
    			stm.setString(4, roue);
    			stm.setInt(5, horametre);			
    			stm.setInt(6, fourche);
    			stm.setInt(7, poids);
    			stm.setString(8, moteur);
    			stm.setInt(9, longueurHt);
    			stm.setInt(10, hauteur);
    			stm.setInt(11, largeur);
    			stm.setInt(12, longueurFourche);
    			stm.setInt(13, sectionFourche);
    			stm.setString(14, galet);			
    			stm.setString(15, jante);
    			stm.setString(16, option);
    			stm.setString(17, definition);
    			stm.setString(18, autre);
    			stm.setInt(19, fournisseur);
     
     
    			//Execution de la requête
    			stm.executeUpdate();			
    			//Fermeture du Statement
    			stm.close();
     
    		} catch (Exception e) {
    			e.printStackTrace();
     
    			String errorMessage = "Une erreur est survenue lors de l'enregistrement. Réessayez ou contactez la personne qui s'occupe de votre logiciel\n\nCode erreur :\n "+e.getMessage();
    			V_ChoixJDialog errorMarque = new V_ChoixJDialog(0, null, errorMessage, "Erreur lors de l'enregistrement", JOptionPane.ERROR_MESSAGE);
     
    			//Renvoi false si l'ajout ne s'est pas déroulé correctement	
    			return false;
    		}
     
    		return true;
    	}
    Sauriez vous pourquoi cette requête ne veut pas s'executer ?

    J'ai pas mal chercher mais je n'ai pas trouver la réponse qu'il me fallait.

    Par avance merci

  2. #2
    Membre Expert
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    definition_materiel = ?, autre_materiel = ?, num_fournisseur = ?)
    Ta parenthèse à la fin ne ferme rien. Donc ta requête n'est pas bonne. Je pense qu'il s'agit de cela.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Par défaut
    Bonjour,

    Tout d'abord merci pour ta réponse.

    Malheureusement j'ai retiré la prenthèse, mais j'ai toujours le même problème, je ne sais toujours pas pourquoi.

    J'ai testé ma requête sous SQLDevelopper, elle fonctionne à condition de remplacer les ? par deux simples quotes '', pour dire que c'est un champ vide. Est-ce que cela est fait automatiquement avec mon PreparedStatement?

    Si ca ne vient pas de ça, vraiment je ne sais pas

  4. #4
    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 : 46
    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
    Citation Envoyé par roukgreg Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public boolean requeteModifMaterielBDetail(int fournisseur, String energie, String mat, String tablier, String roue,int horametre,
    			int capacite,int fourche, int poids,String moteur, int longueurHt, int hauteur, int largeur, int longueurFourche,
    			int sectionFourche, String galet, String jante, String option, String definition, String autre) {
    
    		try {
    			queryAjoutMaterielBis  = "UPDATE materiel SET energie_materiel = ?, mat_materiel = ?, tablier_materiel = ?, roue_materiel = ?,";
    			queryAjoutMaterielBis += " heure_materiel = ?, capacite_materiel = ?, fourche_materiel = ?, moteur_materiel = ?,";
    			queryAjoutMaterielBis += " longueur_hors_tout_materiel = ?, hauteur_basse__materiel = ?, largeur_materiel = ?, longueur_fourche_materiel = ?,";
    			queryAjoutMaterielBis += " section_fourche_materiel = ?, galet_materiel = ?, jantes_materiel = ?, option_materiel = ?,";
    			queryAjoutMaterielBis += " definition_materiel = ?, autre_materiel = ?, num_fournisseur = ?)";
    			queryAjoutMaterielBis += " WHERE num_parc = (SELECT MAX(num_parc) from materiel)";
    		
    			//Préparation de la requête avec les données renvoyées par le formulaire d'authentification
    			PreparedStatement stm = sqlc.prepareStatement(queryAjoutMateriel);
    Sauriez vous pourquoi cette requête ne veut pas s'executer ?
    Parce que manifestement, ce n'est pas celle là que tu exécute

Discussions similaires

  1. Requete UPDATE qui ne fonctionne pas
    Par JiB@ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 02/03/2007, 18h06
  2. requête match qui ne fonctionne pas.
    Par sam01 dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/05/2006, 20h28
  3. [MySQL] Requête update qui ne fonctionne pas
    Par Sylvain245 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/12/2005, 16h40
  4. [MySQL] UPDATE qui ne fonctionne pas
    Par philippef dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/09/2005, 14h35
  5. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10

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