état de curseur non valide

sacine -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
sacine
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Et qu'est-ce qu'il y a après ? Normalement tu devrais avoir un rs.close() juste derrière.
0