Foros del Web » Programación para mayores de 30 ;) » Java »

problema con resultset

Estas en el tema de problema con resultset en el foro de Java en Foros del Web. Hola, por favor si alguien puede ayudarme se lo agradecería mucho. El problema es el siguiente. Estoy haciendo una conexión de jdeveloper 10g con Oracle9i. ...
  #1 (permalink)  
Antiguo 19/05/2008, 17:36
Avatar de cymc  
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 1 mes
Puntos: 0
problema con resultset

Hola, por favor si alguien puede ayudarme se lo agradecería mucho. El problema es el siguiente.
Estoy haciendo una conexión de jdeveloper 10g con Oracle9i. Hasta ahora la conexión fue exitosa, pero el problema es cuando uso los resultset. El código que tengo es el siguiente:
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Conexión=DriverManager.getConnection("jdbc:oracle: thin:@localhost:1521:cymc","yanine","yanine");

Sentencia = Conexion.createStatement();

Resultado = Sentencia.executeQuery("SELECT* FROM factura");

System.out.println(Resultado.getInt("nroFactura")) ;

Conexion.close();
}
catch(ClassNotFoundException cnfe)
{
System.out.println(cnfe);
}
catch(SQLException sqle)
{
System.out.println(sqle);
}


Mi programa ya se conecta con oracle pero cuando quiero mostrar los resultados del resultset me sale el siguiente mensaje:

Java.sql.SQLException: Indice de columna no valido


No lo reconoce “nroFactura”, que es una columna de factura. Y también cuando uso la función “Resultado.getRow()” , me sale como resultado 0.
Nose porque sale este error, si mi base de datos ya esta conectado. Las tablas, la cree con script de SQL*Plus.
Necesito ayuda por favor, es urgente.
  #2 (permalink)  
Antiguo 19/05/2008, 18:50
Avatar de Payin  
Fecha de Ingreso: mayo-2007
Mensajes: 92
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: problema con resultset

quizás es un error tonto de tipeo, pero veo que en tu consulta tienes el * pegado al SELECT.

Sino, tu código está bien
  #3 (permalink)  
Antiguo 20/05/2008, 01:13
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: problema con resultset

Hola,

Para empezar, el codigo no es correcto ya que no haces un ResultSet.next() antes de acceder a las columnas, supongo que Resultado es del tipo ResultSet.

Prueba con un tutorial de JDBC paso a paso para aprender los conceptos básicos de como ejecutar un query, recorrer las filas resultado etc. los diferentes tipos de Statement que hay, etc.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 20/05/2008, 07:46
Avatar de Lino-kun  
Fecha de Ingreso: mayo-2008
Ubicación: Cuernavaca Morelos Mexico
Mensajes: 126
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: problema con resultset

Lo que GreenEyed quiere decir es que te falta algo como esto
Código PHP:
 try
{
    Class.
forName("oracle.jdbc.driver.OracleDriver");     Conexión=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:cymc","yanine","yanine");
    
Sentencia Conexion.createStatement();
    
Resultado Sentencia.executeQuery("SELECT* FROM factura");
    if(
Resultado.next()){
       
System.out.println(Resultado.getInt("nroFactura")) ;
    }
    
Conexion.close();
}
catch(
ClassNotFoundException cnfe)
{
    
System.out.println(cnfe);
}
catch(
SQLException sqle)
{
    
System.out.println(sqle);

También puedes sustituir el if() por un while en caso de que el ResultSet contenga mas de un elemento. Aun así si el nombre de la columna no es correcto también mandará una excepción así que también escribe correctamente los nombres de columnas. El nombre de la columna se puede sustituir de igual manera por un índice de la columna.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:27.