Bonjour, je veux faire une requete sur mon serveur SQL mais j'ai une 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 23 mai 2008 11:27:12 Test.Test_BdD jButton1ActionPerformed GRAVE: null java.sql.SQLException: Column Index out of range, 14 > 1. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) at com.mysql.jdbc.ResultSetImpl.checkColumnBounds(ResultSetImpl.java:794) at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5515) at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5434) at Test.GestionAutorisation.HeureSortie(GestionAutorisation.java:213) at Test.Test_BdD.jButton1ActionPerformed(Test_BdD.java:65) at Test.Test_BdD.access$000(Test_BdD.java:17) at Test.Test_BdD$1.actionPerformed(Test_BdD.java:39) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234) at java.awt.Component.processMouseEvent(Component.java:5488) at javax.swing.JComponent.processMouseEvent(JComponent.java:3126) at java.awt.Component.processEvent(Component.java:5253) at java.awt.Container.processEvent(Container.java:1966) at java.awt.Component.dispatchEventImpl(Component.java:3955) at java.awt.Container.dispatchEventImpl(Container.java:2024) at java.awt.Component.dispatchEvent(Component.java:3803) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822) at java.awt.Container.dispatchEventImpl(Container.java:2010) at java.awt.Window.dispatchEventImpl(Window.java:1774) at java.awt.Component.dispatchEvent(Component.java:3803) at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Je déclare mon champ DateHeureSortie dans la base de données comme un VARCHAR(2000).
Voici mon code:
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 public static String HeureSortie(String user, String password, String url , String nomDriver, String NumCodeBarre) throws SQLException{ heureSys = cal.get(Calendar.HOUR_OF_DAY); //récupère les heures du système minuteSys = cal.get(Calendar.MINUTE); //récupère les minutes du système sHeure = FormatCode(heureSys); //on formate les heures sous la forme 05 ou 17 sMinute = FormatCode(minuteSys); //on formate les minutes sous la forme 05 ou 17 System.out.println("Heure du systeme: "+sHeure); System.out.println("Minutes du systeme: "+sMinute); String HeureSortie = sHeure + sMinute; //on concaténe les heures et les minutes sous la forme 0517 soit 5h17 String date = formatDate(); //on veut une date sous la forme 22/05/2008 String DateHeureSortieInitial = null; GestionConnectBdD.ouvrir(user, password, url, nomDriver); //connexion à la BdD GestionConnectBdD.ajouter("UPDATE employes SET HeureSortie="+"\"" + HeureSortie + "\" WHERE NumCodeBarre= "+"\"" + NumCodeBarre + "\" "); //on ajoute une heure de sortie GestionConnectBdD.rechercher("SELECT DateHeureSortie From employes where NumCodeBarre = "+"\"" + NumCodeBarre + "\" "); //on recherche les valeurs placées dans le champ DateHeureSortie sur la BdD while(GestionConnectBdD.re.next()){ DateHeureSortieInitial = GestionConnectBdD.re.getString(14); //on place la requete dans la variable DateHeureSortieInitial } String deconcateneHeuresSortie = HeureSortie.substring(00, 02); //on déconcaténe la chaine la chaine HeureSortie pour avoir les heures soit 05 String deconcateneMinutesSortie = HeureSortie.substring(02, 04);//on déconcaténe la chaine la chaine HeureSortie pour avoir les minutes soit 17 String HeureSortieFinale = deconcateneHeuresSortie + ":" + deconcateneMinutesSortie + " | "; String DateHeureSortie = date + ";" + HeureSortieFinale; //on concaténe les chaines soit: 22/08/2008;05:17 String DateHeureSortieFinale = DateHeureSortieInitial + DateHeureSortie; //on ajoute les nouveaux param aux param initials GestionConnectBdD.ajouter("UPDATE employes SET DateHeureSortie="+"\"" + DateHeureSortieFinale + "\" WHERE NumCodeBarre= "+"\"" + NumCodeBarre + "\" "); //on charge les nouveaux param pour le champ DateHeureSortie sur la BdD System.out.println(DateHeureSortieFinale); // GestionConnectBdD.fermer(); return HeureSortie; } public static String FormatCode(int var){ String Svar = Integer.toString(var); if(Svar.length()<2) //test si la longueur de la chaine est <2 { Svar = "0" + Svar; //on rajoute un 0 devant la chaine } return Svar; } public static String formatDate(){ //Revoie une date sous la forme jj/mm/aaaa int moisSys = cal.get(Calendar.MONTH) + 1; String SmoisSys = FormatCode(moisSys); int dateSys = cal.get(Calendar.DATE); String SdateSys = FormatCode(dateSys); int anneeSys = cal.get(Calendar.YEAR); String SanneeSys = FormatCode(anneeSys); String date = SdateSys + "/" + SmoisSys + "/" + SanneeSys; System.out.println(date); return date; } }
Dans mon bouton:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 try { GestionAutorisation.HeureSortie("root", "root", "jdbc:mysql://10.104.100.57:3306/snecmajava", "org.gjt.mm.mysql.Driver", "9204521220089"); } catch (SQLException ex) { Logger.getLogger(Test_BdD.class.getName()).log(Level.SEVERE, null, ex); }
Pouvez-vous m'aider?
Merci d'avance.
Partager