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 :

[debutant] Requete ne modifie pas la base


Sujet :

JDBC Java

  1. #1
    En attente de confirmation mail
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Points : 60
    Points
    60
    Par défaut [debutant] Requete ne modifie pas la base
    bon soir,
    j'esaye depuis beaucoup de comprendre ou se trouve l'erreure dans cette requete mais j'arrive pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int i=bd.stat.executeUpdate("UPDATE 'client' SET 'cin' = '"+cinv+"','nom' = '"+nomv+"', 'prenom' = '"+prenomv+"','raison social' = '"+rsv+"', 'tel' = '"+telv+"', 'fax' = '"+faxv+"','adresse' = '"+addressv+"','mf' = '"+mfv+"','rc' = '"+rcv+"' WHERE 'client'.'id_client' ="+id_client);
    a l'execution il me sort l'erreur suivante:
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Erreur de syntaxe près de ''client' SET 'cin' = '123456','nom' = 'abd khalek', 'prenom' = '' à la ligne 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.Util.getInstance(Util.java:381)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1605)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1524)
    at aymen.ajoutClient.actionPerformed(ajoutClient.java:191)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    merci pour l'aide

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Je suis pas sûr, mais...
    Certains des noms, ou prénoms que votre requete manipule contiennent certainnement des apostrophe !
    Comme vous avez opte pour ce dernier caractère comme délimiteur de chaîne, c'est problématique.
    Essayez votre requete avec cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int i=bd.stat.executeUpdate("UPDATE client SET \"cin\" = \""+cinv+"\",\"nom\" = \""+nomv+"\", \"prenom\" = \""+prenomv+"\",\"raison social\" = \""+rsv+"\", \"tel\" = \""+telv+"\", \"fax\" = \""+faxv+"\",\"adresse\" = \""+addressv+"\",\"mf\" = \""+mfv+"\",\"rc\" = \""+rcv+"\" WHERE client.id_client ="+id_client);
    En fait, il suffit de remplacer le caractère ' par \".
    Pour ce qui est du nom de la table, dans la déclaration Update comme dans la clause Where, il me semble qu'il n'est pas obligatoire d'encadrer ce dernier de délimiteur de chaînes.

    Voilà, j'espère que cela vous aura aidé.

  3. #3
    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
    Il faut utiliser des PreparedStatement .... c'est beaucoup plus simple et sûr pour ce genre de problème.



    Les instructions paramétrées - PreparedStatement

  4. #4
    En attente de confirmation mail
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Points : 60
    Points
    60
    Par défaut
    salut
    merci pour les reponses
    j'ai essaye avec les PreparedStatment ca donne aucune erreur mais aussi aucun changement dans la base

  5. #5
    En attente de confirmation mail
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Points : 60
    Points
    60
    Par défaut
    ca fais rien parceque le champ id_client n'est pas correcte
    merci pour l'aide

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 01/12/2010, 09h57
  2. [MySQL] Comprend pas! requete qui ne modifie plus la base au bout d'un certain nombre d'essai
    Par maxfive7 dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 01/08/2007, 14h05
  3. Réponses: 4
    Dernier message: 08/03/2007, 21h00
  4. [debutant] requete de base
    Par etoileDesNeiges dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/02/2007, 15h37
  5. Je ne trouve pas la requete pour modifier les entrées...
    Par guttts dans le forum Langage SQL
    Réponses: 7
    Dernier message: 24/08/2005, 19h17

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