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 transfert table MySQL


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de stefan73
    Homme Profil pro
    Formateur : OpenOffice.org/LibreOffice
    Inscrit en
    Mai 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Formateur : OpenOffice.org/LibreOffice
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 105
    Par défaut Requête transfert table MySQL
    Bonjour,

    je rentre des données dans une table "T1" ensuite quand je valide la saisie il y un test pour savoir si les crédits et débits sont égaux ! jusqu'à la tout vas bien !

    s'ils sont égaux alors je transfert mes donnes dans une autre table "T2"... et je vous le donne en mille, c'est ici que se pose le problème.

    test et erreur !
    1
    c'est bon !
    2
    3
    Erreur : Anomalie lors de l'execution de la requête : java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
    GÉNÉRATION TERMINÉE (durée totale* 15 secondes)
    Et après une demi journée à essayer de voir le souci je ne suis pas capable d'y répondre !

    donc, je vous donne le bout de code pour voir si un de vous, aurais une idée pour me guider ?

    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
     
    Statement stmt =con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
                //garde en mémoire les lignes Résultant de l'éxecution de la requete
                ResultSet rs = stmt.executeQuery("select * from baseefs.totalht");
                //boucle sur les champs
                while (rs.next()) {
                    System.out.println("1");
                    Double montantHTDEB = rs.getDouble(1);
                    Double montantHTCRED = rs.getDouble(2);
                    Double diffe = montantHTDEB - montantHTCRED;
                    // test de l'égalité pour ensuite envoyer dans la table TCAchats.
                    if (montantHTDEB.equals(montantHTCRED)) {
                        System.out.println(" c'est bon !");
                        //affiche("creation et execution de la requête");
     
                        requete = "INSERT INTO TCAchats (Nchrono, idMenuConf, Compte, DateEmission, Libelle, Piece, Section, TTVA, MontantHTDeb, MontantTVADeb, MontantTTCDeb, MontantHTCred, MontantTVACred, MontantTTCCred, MPayement)"
                                                     + "SELECT (Nchrono, idMenuConf, Compte, DateEmission, Libelle, Piece, Section, TTVA, MontantHTDeb, MontantTVADeb, MontantTTCDeb, MontantHTCred, MontantTVACred, MontantTTCCred, MPayement) FROM TMPAchats"
                                + "VALUES ('" + jTnChrono.getText() + "','" + idmenuconf + "','" + jCombCompt.getSelectedItem() + "','" + sqlDate + "','" + jTlibaera.getText() + "','" + jTPiece.getText() + "','" + jTSect.getText() + "','" + toTva.toString() + "','" + jTMhtDeb.getText() + "','" + jTMTVADeb.getText() + "','" + jTMttcDeb.getText() + "','" + jTMhtCred.getText() + "','" + jTMTVACred.getText() + "','" + jTMttcCred.getText() + "','" + jCoMpaye.getSelectedItem() +"')";
     
                        System.out.println("2");
                        //requete = "INSERT IGNORE INTO baseefs.TMPAchats SELECT (Nchrono, idMenuConf, Compte, DateEmission, Libelle, Piece, Section, TTVA, MontantHTDeb, MontantTVADeb, MontantTTCDeb, MontantHTCred, MontantTVACred, MontantTTCCred, MPayement) FROM baseefs.TCAchats ";
                   try {
                        System.out.println("3");
                        //int maj = stmt.executeUpdate(requete);
                        ResultSet maj = stmt.executeQuery(requete);
                               System.out.println("4");               
     
                        } catch (SQLException e) {
                            System.out.println("Erreur : Anomalie lors de l'execution de la requête : " + e);
                        }
     
                    } else {
                        System.out.println(" Les montant ne sont pas égaux, veuillez corriger l'erreur avanr de valider !");
                        System.out.println(" Les montants  en Débit : " + montantHTDEB + " €" + ", en crédit :" + montantHTCRED + " €" + ", il y a une différence de : " + diffe + "€");
                    }
                }
            } catch (SQLException ex) {
                Logger.getLogger(Comptabilite.class.getName()).log(Level.SEVERE, null, ex);
            }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 39
    Par défaut
    Lu,

    executeQuerry pour les requetes de "recherche"

    et executeUpdate pour les requetes "insert" et "update".

    donc ligne 25 : stmt.executeUpdate();

    A noter que tu n'as pas a le mettre dans un ResultSet puisque ce statement ne renverra rien (enfin tu pourrais lui faire renvoyer le nombre d'opérations que ton statement a provoqué mais c'est optionnel)

    J'espere que ca t'aideras.

  3. #3
    Membre confirmé Avatar de stefan73
    Homme Profil pro
    Formateur : OpenOffice.org/LibreOffice
    Inscrit en
    Mai 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Formateur : OpenOffice.org/LibreOffice
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 105
    Par défaut
    Merci pour ta réponse.

    j'avais aussi et j'ai oublié de le précisé, déjà fait cette manip et j'obtiens cette erreur ?

    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
    54
    55
     
    1
     c'est bon !
    2
    3
    7 oct. 2011 09:19:33 efs.ui.Comptabilite jBValEntreesActionPerformed
    Erreur : Anomalie lors de l'execution de la requête : com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('365','2','Item 1','2011-10-07','Projet E.F.Solution','1','3','19.6','0','0','0' at line 1
    GRAVE: null
    java.sql.SQLException: Operation not allowed after ResultSet closed
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
    	at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:794)
    	at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7145)
    	at com.mysql.jdbc.UpdatableResultSet.next(UpdatableResultSet.java:1164)
    	at efs.ui.Comptabilite.jBValEntreesActionPerformed(Comptabilite.java:742)
    	at efs.ui.Comptabilite.access$200(Comptabilite.java:33)
    	at efs.ui.Comptabilite$3.actionPerformed(Comptabilite.java:215)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    	at java.awt.Component.processMouseEvent(Component.java:6288)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    	at java.awt.Component.processEvent(Component.java:6053)
    	at java.awt.Container.processEvent(Container.java:2041)
    	at java.awt.Component.dispatchEventImpl(Component.java:4651)
    	at java.awt.Container.dispatchEventImpl(Container.java:2099)
    	at java.awt.Component.dispatchEvent(Component.java:4481)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    	at java.awt.Container.dispatchEventImpl(Container.java:2085)
    	at java.awt.Window.dispatchEventImpl(Window.java:2478)
    	at java.awt.Component.dispatchEvent(Component.java:4481)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
    	at java.awt.EventQueue.access$000(EventQueue.java:84)
    	at java.awt.EventQueue$1.run(EventQueue.java:602)
    	at java.awt.EventQueue$1.run(EventQueue.java:600)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    	at java.awt.EventQueue$2.run(EventQueue.java:616)
    	at java.awt.EventQueue$2.run(EventQueue.java:614)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    j'ai l'impression que c'est le composant "jTextAera" qui fait le C**
    Car sur cette ligne il me manque des données ?

    '('365','2','Item 1','2011-10-07','Projet ','1','3','19.6','0','0','0' at line 1
    Si vous avez une idée ?

  4. #4
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Je ne comprend pas bien la syntaxe de ton insert (c'est peut-être une bizarrerie MySQL) : tu fais du INSERT INTO ... SELECT ... VALUES ...
    Le select ou le values est de trop, non ?

  5. #5
    SLE
    SLE est déconnecté
    Membre émérite Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Par défaut
    Oui, effectivement.
    Soit c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO (...) VALUES ...
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO (...) select ...
    mais les 2 en même temps ça va pas !

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Il me semble que tu oublies les ; à la fin de tes requètes sql

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

Discussions similaires

  1. [3.5] Requête sur table mysql créée manuellement
    Par anfalsh dans le forum WordPress
    Réponses: 1
    Dernier message: 29/04/2013, 18h24
  2. Transfert de table MySQL
    Par Azharis dans le forum Administration
    Réponses: 3
    Dernier message: 22/01/2009, 12h43
  3. Requête et liens entre tables MySQL
    Par kaking dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 09/11/2008, 09h23
  4. Requête Ajout depuis une table MySQL
    Par zlatan13 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 27/08/2008, 10h59
  5. La taille d'une table MySQL ralentit-elle les requêtes?
    Par steenbock dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/01/2007, 14h41

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