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

ResultSet length

Estas en el tema de ResultSet length en el foro de Java en Foros del Web. Buenas Tengo una gran duda hace tiempo, es posible conocer el numero de columnas que un resultado executeQuery tiene?. Doy un ejemplo para hacer mas ...
  #1 (permalink)  
Antiguo 19/09/2009, 16:26
 
Fecha de Ingreso: junio-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Pregunta ResultSet length

Buenas

Tengo una gran duda hace tiempo, es posible conocer el numero de columnas que un resultado executeQuery tiene?.
Doy un ejemplo para hacer mas clara la pregunta:

imaginemos q tenemos algo asi ( en el contexto correcto y que funciona ):

Código:
   
Statement s = conn.createStatement ();
s.executeQuery ("SELECT * FROM usuarios");
ResultSet rs = s.getResultSet ();
int count = 0;
while ( rs.next() )
{
    int idVal = rs.getInt ("id");
    String name = rs.getString ("name");
    ++count;
}
Se puede saber cuantas columnas tiene cada rs.next()???.
Yo puedo tomar los valores id y name de rs pq son campos que existen en la tabla 'usuarios' pero lo que quiero es tomar todos los campos, por eso hay un * en la sentencia sql.
  #2 (permalink)  
Antiguo 20/09/2009, 11:55
 
Fecha de Ingreso: agosto-2009
Mensajes: 25
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: ResultSet length

//tienes que declarar estas dos variables en tu clase
private ResultSetMetaData metaDatos = null;
private int numeroColumnas;
.....

Statement s = conn.createStatement ();
ResultSet rs = s.executeQuery ("SELECT * FROM usuarios");

//con esta linea puedes obtener cualquier información de tu consulta
metaDatos = rs.getMetaData();

//con esto obtienes el número de columnas
numeroColumnas = metaDatos.getColumnCount();

//y aqui ya sabiendo el número de columnas puedes realizar la extraccion
//de los datos deseados.
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:58.