Java - Problema con resultSet

 
Vista:

Problema con resultSet

Publicado por Jenny (4 intervenciones) el 13/06/2005 13:28:11
Por favor, necesito ayuda para mi programa. estoy intentando imprimir en un archivo pdf un informe sobre el stock de un almacen, pero tengo 3 tablas de productos y no estan relacionadas asi que he creado 3 resultset con su respectivo statement y lo he intentado pero no me funciona. alguien me puede ayudar???

el codigo es el siguiente...

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection cn= DriverManager.getConnection(urlDb);
Statement select =cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs= select.executeQuery ("Select LOTE,NOMBRE,AÑADA,STOCK FROM INFORMACION_VINOS order by nombre");

Statement select2 =cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs2=select2.executeQuery("select LOTE,NOMBRE,AÑADA,STOCK FROM INFORMACION_ISILLA order by nombre");

Statement select3 =cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs3=select3.executeQuery("select LOTE,NOMBRE,AÑADA,STOCK FROM INFORMACION_SORIA order by nombre");

PdfPTable lineas = new PdfPTable(3);
float tamaño[]={220,140,140};
lineas.setTotalWidth(tamaño);
lineas.getDefaultCell().setBorder(com.lowagie.text.Rectangle.TOP);
lineas.getDefaultCell().setBorderColor(new Color(234,200,173));

while (rs.next() || rs2.next() || rs3.next() ){
//cojo los datos del primer resultset.....
String lote=rs.getString("lote").toUpperCase();
String nombre=rs.getString("NOMBRE").toUpperCase();
String añada=rs.getString("AÑADA").toUpperCase();
int stock=rs.getInt("STOCK");
String espacio=" ";
String espacio2=".............";
String unida=" Unidades";
Phrase cc=new Phrase(12,new Chunk(lote,FontFactory.getFont(FontFactory.COURIER ,12,com.lowagie.text.Font.NORMAL ))) ;
Phrase c1=new Phrase(12,new Chunk(nombre+" "+añada,FontFactory.getFont(FontFactory.COURIER ,12,com.lowagie.text.Font.NORMAL ))) ;
Phrase c5=new Phrase(12,new Chunk(stock+""+unida,FontFactory.getFont(FontFactory.COURIER ,12,com.lowagie.text.Font.NORMAL ))) ;
Phrase c=new Phrase(5,new Chunk(" ",FontFactory.getFont(FontFactory.COURIER ,5,com.lowagie.text.Font.NORMAL))) ;
lineas.addCell(cc);
lineas.addCell(c1);
lineas.addCell(c5);
lineas.addCell(c);
plinea=plinea+1;
//cojo los datos del 2 resultset.....
lote=rs2.getString("lote").toUpperCase();
nombre=rs2.getString("nombre").toUpperCase();
añada=rs2.getString("añada").toUpperCase();
stock=rs2.getInt("stock");
Phrase cc0=new Phrase(12,new Chunk(lote,FontFactory.getFont(FontFactory.COURIER ,12,com.lowagie.text.Font.NORMAL ))) ;
Phrase cc1=new Phrase(12,new Chunk(nombre+" "+añada,FontFactory.getFont(FontFactory.COURIER ,12,com.lowagie.text.Font.NORMAL ))) ;
Phrase cc2=new Phrase(12,new Chunk(stock+""+unida,FontFactory.getFont(FontFactory.COURIER ,12,com.lowagie.text.Font.NORMAL ))) ;
Phrase cc3=new Phrase(5,new Chunk(" ",FontFactory.getFont(FontFactory.COURIER ,5,com.lowagie.text.Font.NORMAL))) ;
lineas.addCell(cc0);
lineas.addCell(cc1);
lineas.addCell(cc2);
lineas.addCell(cc3);
plinea=plinea+1;
//cojo los datos del 3 resultset....
lote=rs3.getString("lote").toUpperCase();
nombre=rs3.getString("nombre").toUpperCase();
añada=rs3.getString("añada").toUpperCase();
stock=rs3.getInt("stock");
Phrase ccc0=new Phrase(12,new Chunk(lote,FontFactory.getFont(FontFactory.COURIER ,12,com.lowagie.text.Font.NORMAL ))) ;
Phrase ccc1=new Phrase(12,new Chunk(nombre+" "+añada,FontFactory.getFont(FontFactory.COURIER ,12,com.lowagie.text.Font.NORMAL ))) ;
Phrase ccc2=new Phrase(12,new Chunk(stock+""+unida,FontFactory.getFont(FontFactory.COURIER ,12,com.lowagie.text.Font.NORMAL ))) ;
Phrase ccc3=new Phrase(5,new Chunk(" ",FontFactory.getFont(FontFactory.COURIER ,5,com.lowagie.text.Font.NORMAL))) ;
lineas.addCell(ccc0);
lineas.addCell(ccc1);
lineas.addCell(ccc2);
lineas.addCell(ccc3);
plinea=plinea+1;

if(plinea>23){
lineas.writeSelectedRows(0,-1,170,880,directo.getDirectContent() ) ;


Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con resultSet

Publicado por J Hilario (54 intervenciones) el 14/06/2005 19:45:28
La instrucción

while (rs.next() || rs2.next() || rs3.next() )

en tu código no creo que sea muy adecuada. Si uno de los resultset tiene solo un registro y algun otro tiene más por ejemplo, vas a obtener un error, puesto que buscarás leer un registro que quizá no existe. No sé si puedieras decirme que pretendes obtener de la tres tablas en conjunto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con resultSet

Publicado por Jenny (4 intervenciones) el 15/06/2005 18:04:24
pues intento obtener los datos de los productos que tengo en 3 tablas diferentes:
tabla1(vinos reservas)
tabla2(vinos jovenes)
tabla3(vinos crianzas)

y quiero imprimir un informe con todos los productos juntos, pero no sé como hacerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con resultSet

Publicado por Oscar (41 intervenciones) el 15/06/2005 19:42:47
Para que no tengas tantos problemas para programar eso, puedes usar JasperReports, este se conecta a la base de datos y te muestra la informacion en el formato que tu le definas.

http://jasperreports.sourceforge.net/
Para diseñar los reportes puedes te recomiendo:
http://ireport.sourceforge.net/

Saludos
Oscar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar