Translate

viernes, 17 de octubre de 2014

Configurar el plugin de jasper reports en netbeans

Artículo en proceso...

Introducción

Apenas traté de descargar todos los plugins necesarios para hacer reportes de Jasper Reports y se instalan aparentemente sin problema, pero al momento de hacer un proyecto marcaba errores en las librerías. Resulta que las rutas estaban mal

Procedimiento

Para corregir ese error deberemos modificar la librería de la base de datos de librerías de netbeans.
Primeramente identificamos las librerías con error que deberán aparecen en rojo.
Los archivos de java jar deberán aparecer en la carpeta:
C:/Archivos de Programa/Netbeans 8.0/ireport/modules/ext
Alguna veces en versiones superiores una vez localizado el nombre desde netbeans damos click en el botón addJAR/Folder y buscamos el archivo en el díalogo que aparecerá.
Luego procederemos a eliminar el archivo que hemos agregado mediante el botón Remove del mismo menú.
Alguna librerías no se encontrarán, en mi caso fueron dos, y las bajé del sitio Java2s.
 Una vez resuelto este problema nuestra ventana se deberá de ver algo así, y los errores de compilación habrán desaparecido.


Explicación

Resulta que esa es la forma en que se estructuran las rutas de netbeans internamente, pero por alguna razón, no remplazaron bien y quedó una ruta relativa al momento de hacer el plugin. Esta colección de plugins cada vez es más viejo, y como son contribuidos por la comunidad, no hay código fuente, de manera que no se actualizan a las nuevas versiones de netbeans. Muchas de estas librerás tienden a desaparecer, pues incluso las que tenían su código en java.net por políticas de este sitio, serán removidas si no tienen actividad de desarrollo en el último año.

jueves, 2 de octubre de 2014

Error: "SQLException: Before start of result set"

Introducción


De vez en cuando seguro que nos toparemos con un error similar a este:
java.sql.SQLException: Before start of result set
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
    at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:855)
    at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2710)

Solución


La solución es muy simple, suponiendo que el result set se obtenga en la variable resultados, entonces bastaría con poner un:
resultados.next();

Explicación

En Java los result sets se obtienen en el índice 0, por ello para poder obtener la información debemos recorrerlo a el índice 1. Esto se hace mediante la llamada al método next de la clase ResultSet instanciando a la clase, pues no es un método estático.