état de curseur non valide

Fermé
sacine - 26 mai 2014 à 22:40
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 27 mai 2014 à 07:27
Bonjour,
j'ai un problème quand exécute un programme java avec une requette SQL,
la requette est la suivante:
SELECT intitule,Date, SUM(montant)AS som_montant, RIB  FROM Account GROUP BY intitule, Date, RIB
il me renvois exactement le résultat attendue, exactement comme je le voulais, sauf que a la fin, il met un message d'erreur :
java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] ?tat de curseur non valide
qui fait planté le prorgramme.
merci pour votre aide

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 mai 2014 à 22:48
Bonjour,

Il faudrait voir ton code pour comprendre ce qui se passe, ainsi que la trace complète de l'exception.

Le "curseur" c'est ton ResultSet sur lequel tu fais des next pour avoir tous les résultats, mais tu peux aussi faire d'autres opérations (des updates par exemple) et certaines doivent se faire dans un certain ordre, si tu ne respectes pas cet ordre tu peux te retrouver dans un état invalide...
0
Voici mon code

   sql="SELECT intitule,Date, SUM(montant)AS som_montant, RIB  FROM Account GROUP BY intitule, Date, RIB";
rs=st.executeQuery(sql);



while(rs.next() ){

System.out.println(rs.getString("Intitule")+" "+rs.getString("Date")
+" "+rs.getString("som_Montant")+" "+rs.getString("RIB") );



}
il me renvois tous les résultats puis ça plante, comme indiqué ci-dessous:


SARL SAHBY SIMEX 30042014 27241470.15 00300622300352300045
SARL SUD PRIM 30042014 2715023.64 00400351400000563072
SARL SUPERETTE ACILA 30042014 4833480.37 00200035035220005961
SELECTAR SPA 30042014 52658.84 00200006060066192206
SEND ROUS 30042014 4563572.42 00600304220010010224
1:java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] ?tat de curseur non valide
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
27 mai 2014 à 07:27
Et qu'est-ce qu'il y a après ? Normalement tu devrais avoir un rs.close() juste derrière.
0