Pb au niveau d'une requete
Bonjour, je veux faire une requete sur mon serveur SQL mais j'ai une erreur:
Code:
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:
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:
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.