🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.lenguajes.java
5 messages
5 total messages Started by Diego Tue, 30 Oct 2007 10:24
Error al recuperar rs en Modo debug
#439
Author: Diego
Date: Tue, 30 Oct 2007 10:24
46 lines
3116 bytes
Hola, espero puedan ayudarme pues me he vuelto loco con este errror!!
El tema es que cada vez que ejecuto el programa en modo degub me da un
error al acceder a los elementos del ResultSet.
Es como que cuando arma el rs lo hace mal y luego en el acceso a los
campos de una fila del misma da error.
Lo peor de todo es que sin modo debug anda, pero en debug no. Yo no se
si a alguien le a pasado esto alguna vez. Tengo conexion ODBC sobre un
MSSQL server 2000. Le dejo un ejemplo de codigo. Les agradezco
inmensamente.
Diego

public static void main(String[] args) {
        ResultSet rs=null;
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            /*** Crear conexión con base de datos ***/
            Connection con =
DriverManager.getConnection("jdbc:odbc:SCAP");
            /***** Definir sentencia y ejecutarla ********/
            //String ssql="SELECT
A.codigo,A.descripcion,A.precioUnitario,A.observaciones,P.codigo FROM
TArticulo A JOIN TProveedor P ON A.idProveedor=P.idProveedor  WHERE
A.eliminado IS null"; //AND A.codigo='" + clave + "'";
            String ssql="SELECT A.codigo as codigo,A.descripcion as
descripcion FROM TArticulo A JOIN TProveedor P ON
A.idProveedor=P.idProveedor  WHERE A.eliminado IS null"; //AND
A.codigo='" + clave + "'";
            //String orden_SQL = "SELECT " + col1 + "," + col2 + "
FROM cliente ORDER BY " + col2;
            Statement sentencia =
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
            rs = sentencia.executeQuery( "SELECT A.codigo as
codigo,A.descripcion as descripcion FROM TArticulo A WHERE A.eliminado
IS null" );
            while ( rs.next() ) {
                System.out.println( rs.getString("codigo") + ", " +
rs.getString("descripcion") );
            }
            rs.close();
        }catch (Exception e) {
            System.out.println("ERROR");

        }

    }
Re: Error al recuperar rs en Modo debug
#440
Author: Eduardo Yáñez Parareda
Date: Tue, 30 Oct 2007 10:40
1 lines
1000 bytes
Lo primero es decirnos el error que se produce y la traza de excepciones.
Re: Error al recuperar rs en Modo debug
#441
Author: Diego
Date: Tue, 30 Oct 2007 13:34
18 lines
2062 bytes
On 30 oct, 07:40, Eduardo Yáñez Parareda
<eduardo.yanezNOS...@NOSPAMgmail.com> wrote:
> Lo primero es decirnos el error que se produce y la traza de excepciones.

Hola Eduardo,
       Lo primero que dice cuando hago un watch de
rs.getString("codigo")  es que dice que el metodo GetString de la
clase Resulset .... ha producido una excepcion y me da el valor de la
excepcion.
Lo raro es que ya entra al ciclo while (la mayoria de las veces con el
puntero a la tercer o cuarta fila) y no respeta un patron. Es como si
esta instruccion
rs = sentencia.executeQuery( "SELECT A.codigo as
codigo,A.descripcion as descripcion FROM TArticulo A WHERE
A.eliminado
IS null" );  devolvería un rs dañado.
Espero haber aportado a tu pregunta y gracias nuevamente por la
respuesta.
Re: Error al recuperar rs en Modo debug
#442
Author: Eduardo Yáñez Parareda
Date: Tue, 30 Oct 2007 17:32
5 lines
1214 bytes
> Espero haber aportado a tu pregunta 

Siento decirte que no, y perdona que me ponga pesado, �pero puedes poner la traza
de la excepci�n? Es algo que puede ayudar a la gente a ver tu problema.
Re: Error al recuperar rs en Modo debug
#443
Author: Flint
Date: Tue, 30 Oct 2007 18:45
84 lines
3916 bytes
On Tue, 30 Oct 2007 03:24:39 -0700, Diego
<diego_arcidiacono@hotmail.com> wrote:

>Hola, espero puedan ayudarme pues me he vuelto loco con este errror!!
>El tema es que cada vez que ejecuto el programa en modo degub me da un
>error al acceder a los elementos del ResultSet.
>Es como que cuando arma el rs lo hace mal y luego en el acceso a los
>campos de una fila del misma da error.
>Lo peor de todo es que sin modo debug anda, pero en debug no. Yo no se
>si a alguien le a pasado esto alguna vez. Tengo conexion ODBC sobre un
>MSSQL server 2000. Le dejo un ejemplo de codigo. Les agradezco
>inmensamente.
>Diego
>

No te lo tomes a mal, pero tu c�digo tiene alg�n defectillo. En primer
lugar no se cierra la conexi�n (malo) y luego capturas directamente un
exception as� a pi��n (malo) y no escribes la traza (malo tambien) con
lo que no sabes cu�l es la causa raiz de tu problema.

Cambia tu c�digo por este:

public static void main(String[] args) {
ResultSet rs = null;
Connection con = null;
try {
	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/*** Crear conexi�n con base de datos ***/
con = DriverManager.getConnection("jdbc:odbc:SCAP");
/***** Definir sentencia y ejecutarla ********/

Statement sentencia = con
		.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
				ResultSet.CONCUR_READ_ONLY);
rs = sentencia
		.executeQuery("SELECT A.codigo as codigo,A.descripcion
as descripcion FROM TArticulo A WHERE A.eliminado IS null");
while (rs.next()) {
	System.out.println(rs.getString("codigo") + ", "
+ rs.getString("descripcion"));
	}
	rs.close();
} catch (ClassNotFoundException e) {
	System.err.println("Clase sun.jdbc.odbc.JdbcOdbcDriver no se
pudo cargar");
	e.printStackTrace();
} catch (SQLException e) {
	System.err.println("Error de SQL al ejecutar statement");
	e.printStackTrace();
} finally {
if(con != null) {
	try {
		con.close();
} catch (SQLException e) {
	System.err.println("No se pudo cerrar la conexion.");
			e.printStackTrace();
		}
	}				
}
	}



Cuando lo ejecutes, deber�a salirte en consola la traza. La m�a sale
as� porque, evidentemente, no tengo definido el DSN ni tengo esa base
de datos. A t� te saldr� otra cosa. Ejemplo:

Error de SQL al ejecutar statement
java.sql.SQLException: [Microsoft][Administrador de controladores
ODBC] No se encuentra el nombre del origen de datos y no se especific�
ning�n controlador predeterminado
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at es.prueba.Prueba.main(Prueba.java:21)


Dinos qu� te sale en la traza y a ver si te podemos ayudar. De
momento, f�jate en c�mo est�n capturadas las excepciones y c�mo se usa
la cl�usula finally para cerrar la conexi�n.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads