Bonjour, je suis sur une appli qui attaque une BD ACCESS mais j'ai deux requêtes qui me retournent état de curseur non valide
Ici, la requete doit me retourner soit 1 soit 0. Quand c'est 1, pas de problème mais pour 0 çà met l'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 Statement s1 = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); String req = "Select Count(*) from chrono where noConcurrent="+numconcu+" And noEtape="+var3; ResultSet result = s1.executeQuery(req); result.next(); int cpt = result.getInt(1); if (cpt==1){ mess.showMessageDialog(null,"Vous avez déjà rentré un temps pour ce concurrent","Avertissement",JOptionPane.ERROR_MESSAGE); } else{ PreparedStatement st = connect.prepareStatement("Insert into Chrono(noEtape, noConcurrent, temps) Values (?,?,?)"); st.setInt(1, var3); st.setInt(2, numconcu); st.setFloat(3, letemps); st.executeUpdate(); st.close(); connect.close(); temps.setText(""); } result.close(); }
J'ai la même erreur ici sur le getString et le getFloat (enfin c la qu'Eclipse pointe) sauf que bizarrement çà marche mais le code apres le rs.close ne se marche pas. Je ne sais pas si c'est à cause de 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 Statement stab = connect.createStatement(); String bdtab = "Create table Classement(nom text, temps float)"; stab.execute(bdtab); stab.close(); Statement s1 = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); String req1 = "Select concurrent.nom, SUM(chrono.temps) As Somme FROM concurrent, chrono Where concurrent.numero=chrono.noConcurrent Group by concurrent.nom"; ResultSet rs = s1.executeQuery(req1); while (rs.next()){ var1= rs.getString(1); float var2 = rs.getFloat(2); PreparedStatement st = connect.prepareStatement("Insert into Classement(nom, temps) Values (?,?)"); st.setString(1, var1); st.setFloat(2, var2); st.executeUpdate(); st.close(); } rs.close(); String unnom = new String(); float untemps; Statement s2 = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); String req2 = "Select nom, temps From Classement order by temps"; ResultSet rs2 = s2.executeQuery(req2); while(rs2.next()){ unnom=rs2.getString(1); untemps=rs2.getFloat(2); listeclass.add(""+rs2.getRow()+" "+unnom+" avec un temps cumulé de "+untemps+""); } rs2.close(); connect.close();
Partager