Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/09/2007, 16:16
wwwmaster
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años, 3 meses
Puntos: 37
Re: Como distinguir los datos de una BD con un ResulSetMetaData

Yo lo hice en WebSphere Studio Site Developer para desplegar cualquier resulset con servlets y jsp
en el servlet:


datosDBbean.setCommand(instruccionSQL);

// Assign labels to columns of the result set.
DBSelectMetaData resultMetaData = datosDBbean.getMetaData();
// Execute the query
System.out.println( "4.-Anets de Execute EJECUTA ASELECION..." );
datosDBbean.execute();
System.out.println( "5.- Despues de Execute..." );
// Call the result page
System.out.println("6.-Carga el bean de datos recien recuperado en request..." );

request.setAttribute("datosDBbean", datosDBbean);
System.out.println( "7.- redirecciona hacia Ejecuta SeleccionResultados.jsp..." );



EN EL JSP:


<%@ page import="com.ibm.db.beans.*" %>
<%@ page import="java.math.BigInteger" %>
<jsp:useBean id="datosDBbean" class="com.ibm.db.beans.DBSelect" scope="request" />
<%
System.out.println("&mensaje99=estamos dentro de jsp ejecuta seleccionresultados");
try {
//java.lang.String campo0 = "";
//if ( !resultados.wasNull() )
// Aunq no haya habido registros, se debera retornar las columnas
long registros = 0;
if(datosDBbean.first()) {
java.lang.String arrCadena[];
arrCadena = new String[datosDBbean.getColumnCount()];
long i=0;
// Inicializa los arreglos con vacios
for (i=0;i<datosDBbean.getColumnCount() ;i++){
arrCadena[(int)i] = "";
}
System.out.println("&mensaje98=Conteo de columas="+datosDBbean.getColumnCount());
do { // Ciclo de lectura de registros
registros++;
if (registros>15000){break;}
// Debe ser mediante ciclo que recupere TODOS los campos de bean
for (i=0;i<datosDBbean.getColumnCount() ;i++){
if (registros>1){arrCadena[(int)i] += "|"; }
//java.math.BigDecimal java.math.BigDecimal getBigDecimal
// arrCadena[(int)i] += ( java.lang.String ) datosDBbean.getColumn((int)i+1); //throws an exception if empty
arrCadena[(int)i] += datosDBbean.getColumnAsString((int)i+1); //throws an exception if empty
}
} while(datosDBbean.next());
// genera las salidas o respuesta
java.lang.String campo = "";
if (registros>0){
System.out.println("&mensaje98=eANTES DE CICLO ED VACIADO");
for (i=0;i<datosDBbean.getColumnCount() ;i++){
campo= datosDBbean.getColumnName((int)i+1);
%>&<%=campo%>=<%=arrCadena[(int)i]%><%
// &cadena< % =i % >=< % =arrCadena[i]
}
System.out.println("&mensaje98=FIN DE DICLO DE VACIADO ultimo campo="+campo);
}// de hay registros
}else{
System.out.println("&error=No se encontraron registros");
} // end of if
%>&totRegistros=<%=registros%><%
}catch (DBException _e0) {%>
&totRegistros=0
<%System.out.println("cerrando conexion en catch por que no hubo registros");
}
datosDBbean.close(DBStatement.LEVEL_STATEMENT);%>