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 :

Erreur de requête UPDATE


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 110
    Points : 58
    Points
    58
    Par défaut Erreur de requête UPDATE
    Bonjour,

    J'ai écris une requête UPDATE, mais j'ai erreur de syntaxe dans l'instruction UPDATE.

    voici mon code, je ne trouve pas comment bien l'écrire :

    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  static void Insert_ParametersDB(String file_path,String color_percentage,String centered,String edge_complexity, int level){
            try{
                String query = "UPDATE Images SET color_percentage = '"+color_percentage+"', centered = '"+centered+"',edge_complexity = '"+edge_complexity+"',level = "+level+" WHERE file_path = '"+file_path+"'";
                //cnx = ConnectDB();
                st=cnx.createStatement();
                st.executeUpdate(query);
                st.close();
            }
            catch (Exception err) {
                System.out.println( "Error: " + err );
            }
     
     
        }

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Je t'ai déjà conseillé d'utiliser un preparedStatement pour mettre des valeurs dans une requête.
    Ensuite poste le stacktrace complet dans une balise [quote].

    A+.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 110
    Points : 58
    Points
    58
    Par défaut
    Oui c'est vrai pardon.

    Voici le code pour l'instant j'essaye avec une seule variable à remplacer. Je verrais pour les 3 autres si ça marche bien .

    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
     
    public  static void Insert_ParametersDB(String file_path,String color_percentage,String centered,String edge_complexity, int level){
            try{
                String query = "UPDATE Images SET level = ?" + "WHERE file_path = ?";
                //cnx = ConnectDB();
                PreparedStatement ps = cnx.prepareStatement(query);
                ps.setInt(1,level);
                ps.setString(2,"file_path");
                //st=cnx.createStatement();
                ps.executeUpdate();
                ps.close();
            }
            catch (Exception err) {
                err.printStackTrace();
            }
     
     
        }
    erreur :
    java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction UPDATE.
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)
    at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3156)
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(JdbcOdbcPreparedStatement.java:215)
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(JdbcOdbcPreparedStatement.java:137)
    at read.apply.ReadApply.Insert_ParametersDB(ReadApply.java:703)
    at read.apply.ReadApply.Read_ApplyDB(ReadApply.java:723)
    at read.apply.ReadApply.main(ReadApply.java:838)


    Merci beaucoup

    EDIT :

    J'ai localisé mon erreur mais je vois pas du tout pourquoi ça me fait ça :

    Quand j'essaye d'insérer les 3 autres valeurs ça marche. Elles sont de type String.
    Mais ma variable level est pourtant bien de type int mais ça ne fonctionne pas.

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    dans le code suivant le '+' ne sert a rien, et ton problème vient surement de ça...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String query = "UPDATE Images SET level = ?" + "WHERE file_path = ?";
    si tu regardes bien il n'y a pas d'espace entre ? et WHERE d'ou l'erreur de syntaxe

    Il faut l’écrire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String query = "UPDATE Images SET level = ? WHERE file_path = ?";
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 110
    Points : 58
    Points
    58
    Par défaut
    Merci beaucoup !!!
    Je pensais que c'était obligatoire le "+" ^^

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

Discussions similaires

  1. [MySQL] Erreur requête Update
    Par hx.jonathan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/08/2010, 11h36
  2. Erreur requête Update
    Par jjouc dans le forum Langage
    Réponses: 5
    Dernier message: 12/07/2010, 15h15
  3. [MySQL] Erreur de requête UPDATE
    Par benbax dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/01/2008, 14h13
  4. [SQL] Erreur de syntaxe sur ma requête UPDATE
    Par webasso dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/09/2007, 14h55
  5. [SQL] Erreur requête Update
    Par arnaudrou dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 23/04/2006, 16h38

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