JSP (Java Server Page) - Dos jsp/misma tabla/invalid cursor state:

 
Vista:

Dos jsp/misma tabla/invalid cursor state:

Publicado por Marta (1 intervención) el 19/08/2005 11:09:31

Hola muy buenas tengo un problema en el que llevo atasco un tiempo os cuento:

Tengo un jsp(Donde muestro listado de frutas (solo el nombre)) y cuando pincho en una fruta
me manda a otro jsp(Donde muestro datos mas concretos y especificos de la fruta).Para ello paso
de un jsp a otro un valor ID de la fruta que pincha.Con ese ID filtro en mi tabla y cojo toda
la información, pero a la hora de querer mostrarla llamando a campos de la tabla me da un error
(invalid cursor state).En cada jsp cierro la tabla y la vuelvo a abrir.Os pongo el codigo:

Primer jsp:(Fruta.jsp)

Frutas es la tabla

SELECT * FROM Frutas

int IDFruta = rs.getInt("ID");

out.print("<td><div><span><a href='FrutaDetalle.jsp?IDF=" + IDFruta + "'> detalles </a> </span></div></td>");

Segundo jsp:(FrutaDetalle.jsp)

int ID2;
ID2 = Integer.parseInt(request.getParameter("IDF"));

SELECT * FROM Frutas WHERE ID="+ID2

out.print("<td><div>" + rs.getString("Descripcion") + "</div></td>");

El ID de una pagina a otra me lo pasa bien.

La conexión a la base de datos la hago asi por cada jsp:

String db = "jdbc:odbc:DSNName;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(db);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM Frutas");

y al final de cada jsp:

con.close();

El error completo es:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dos jsp/misma tabla/invalid cursor state:

Publicado por Flor Castagnino (8 intervenciones) el 23/08/2005 14:07:43
Marta,

Fijate de poner esto, te falta cerrar el statement y de paso "invalido" el resultset después de ejecutar cada consulta. Yo lo hago así:

if (st != null)
st.close();
if (rs!= null)
rs= null;

De hecho no hace falta que cierres la conexión hasta que termines de usar todo lo que necesites.

Espero te sirva
Flor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar