elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Java - Estado del Cursor no válido
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Java - Estado del Cursor no válido  (Leído 3,751 veces)
Cr4id3r

Desconectado Desconectado

Mensajes: 88



Ver Perfil
Java - Estado del Cursor no válido
« en: 9 Marzo 2015, 14:06 pm »

Buenas a todos comunidad, ¿que tal va todo?, me pasaba por aquí porque estoy teniendo unos problemas de conexión entre java y una base de datos embedida, estoy usando como puente derby, y a la hora de crear la tabla e insertar datos no tengo ningun problema, la cosa esta en cuando intento recuperar esos datos. Cuando intento llamarlos me dice que el estado del cursor no es valido que esta sin fila actual.


Haber si alguien consigue ver en que estoy fallando, soy bastante nuevo en java y no tengo mucha idea por eso no se por donde cogerlo. Os dejo los codigos que he usado.



Creación de Tablas y Datos

Código:
public class Derby {
    public static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
    public static final String JDBC_URL = "jdbc:derby:zadb;create=true";
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
           Class.forName(DRIVER);
           Connection connection = DriverManager.getConnection(JDBC_URL);
           connection.createStatement().execute("create table channels(channel varchar(20),topic varchar(20), videoclip varchar(20))");
           connection.createStatement().execute("insert into channels values "
                   + "('oodp', 'creational', 'singleton'),"
                   + "('oodp', 'creational', 'factory method'),"
                   + "('oodp', 'creational', 'abstract factory')");
           
           System.out.println("Channels table created and records successfully inserted...");
           
    }       
}





Consulta a base de datos

Código:
public class QueryDB {
    public static final String SQL_STATEMENT = "select * from channels";
    public static void main(String[] args) throws SQLException {
        Connection connection = DriverManager.getConnection(Derby.JDBC_URL);
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(SQL_STATEMENT);
        ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
        int columnCount = resultSetMetaData.getColumnCount();
        for (int x = 1; x <= columnCount; x++) System.out.format("%20s", resultSet.getString(x) + " | ");
        while (resultSet.next()){
            System.out.println("");
            for (int x = 1; x <= columnCount;x++) System.out.format("%20s", resultSet.getString(x) + " | ");
        }
        if (statement != null) statement.close();
        if (connection != null) connection.close();
    }
}




Error que me tira

Código:
Exception in thread "main" java.sql.SQLException: Estado del cursor no válido: sin fila actual.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.newSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedResultSet.checkOnRow(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedResultSet.getColumnType(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedResultSet.getString(Unknown Source)
at derby.QueryDB.main(QueryDB.java:19)
Caused by: ERROR 24000: Estado del cursor no válido: sin fila actual.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 10 more
Java Result: 1


Muchas gracias de antemano a todos por prestarme atención.  ;D


En línea

Vive solo por lo que estas dispuesto a morir.
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Java - Estado del Cursor no válido
« Respuesta #1 en: 9 Marzo 2015, 21:18 pm »

Código
  1. for (int x = 1; x <= columnCount; x++) System.out.format("%20s", resultSet.getString(x) + " | ");

Llamas a resultSet.getString(x) en el for, pero, ¿has movido el cursor del ResultSet al inicio?

Simplemente elimina ese for que no te sirve de nada, primero porque no colocas el cursor en la primera fila llamando por primera vez a next() y segundo porque lo que haces en ese for lo haces mas abajo en el while.

PD: Éste tema debe estar en Java.


En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Cr4id3r

Desconectado Desconectado

Mensajes: 88



Ver Perfil
Re: Java - Estado del Cursor no válido
« Respuesta #2 en: 9 Marzo 2015, 21:56 pm »

Voy a probar lo que me has comentado Gus Garsaky, muchas gracias.

P.D: No se como mover el mensaje a otra sección  :-\
En línea

Vive solo por lo que estas dispuesto a morir.
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Java - Estado del Cursor no válido
« Respuesta #3 en: 9 Marzo 2015, 21:57 pm »

No podrás  :P. Ya reporté para que algún mod lo mueva.

Saludos.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Cr4id3r

Desconectado Desconectado

Mensajes: 88



Ver Perfil
Re: Java - Estado del Cursor no válido
« Respuesta #4 en: 9 Marzo 2015, 22:05 pm »

Perfect  ;)

He probado y era eso al final, muchas gracias ^^
Ahora voy a intentar aplicarlo en una interfaz gráfica haber que pasa x)
En línea

Vive solo por lo que estas dispuesto a morir.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Esto sería valido?[c]
Programación C/C++
flacc 3 2,530 Último mensaje 4 Diciembre 2010, 02:24 am
por leogtz
gotoxy() , posicion cursor en la consola o el numero de lineas en java
Java
z_ane_666 2 10,273 Último mensaje 26 Mayo 2011, 20:41 pm
por Maurice_Lupin
Cómo eliminar estado en la barra de estado? « 1 2 »
Java
WHK 10 6,309 Último mensaje 22 Junio 2012, 01:32 am
por Nortis
MOVIDO: Java - Estado del Cursor no válido
Programación General
Eleкtro 0 1,798 Último mensaje 10 Marzo 2015, 09:44 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines