Ola galera
to na parte final de um sistema
na parte de relatorios
porem to criando todos relatorios a mao mesm
e faço os selects que precisa e tals
dai
em nenhum momento eu fecho a coneçao ou o result set
mas o netbeans dah esse erro
java.sql.SQLException: Operation not allowed after ResultSet closed
já aconteceu para algum de voces?
abraços!
agradeço desde já a ajuda…
public void relatorioDevedores() {
try {
PdfWriter.getInstance(documento, new FileOutputStream("Relatório_devedores.pdf"));
documento.open();
String s = "select * from contrato where contratoId not in (select idContrato from cadLancamentos where data>='" + data.datai() + "' and data<='" + data.dataf() + "' ) ";
System.out.println("sql do relatorio " + s);
rs = st.executeQuery(s);
rs.last();
int numLinhas = rs.getRow() + 1;
rs.beforeFirst();
documento.add(new Paragraph("Condominio do edificio João Alberto Schmitt"));
documento.add(new Paragraph("Relatorio dos Devedores do Mes de " + getData(cal) + ""));
Table tabela = new Table(6, numLinhas);
tabela.setAutoFillEmptyCells(true);
tabela.addCell("Nome");
tabela.addCell("Id. Condo.");
tabela.addCell("Andar");
tabela.addCell("Numero");
tabela.addCell("Tamanho");
tabela.addCell("vlr.por cub.");
int x = 0;
/*o erro aponta aqui*/
while (rs.next()) {
x = Integer.parseInt(rs.getString("contratoId"));
System.out.println("x vale ->" + x);
tabela.addCell(" " + rs.getString("pessoaId"));
tabela.addCell(" " + rs.getString("condominioId"));
tabela.addCell(" " + rs.getString("andar"));
tabela.addCell(" " + rs.getString("numero"));
tabela.addCell(" " + rs.getString("tamanho"));
tabela.addCell(" " + calculaCub(x));
}
tabela.addCell("");
tabela.addCell("");
tabela.addCell(" DATA");
tabela.addCell(" " + getData(cal));
tabela.addCell(" ");
tabela.addCell(" ");
documento.add(tabela);
} catch (Exception e) {
e.printStackTrace();
}
documento.close();
}
public float calculaCub(int codContrato) {
float resultado = 0;
try {
//tamanho contrato
//String s = "select tamanho from contrato where contratoId=" + codContrato + " and contratoId not in (select idContrato from cadLancamentos where data>='" + data.datai() + "' and data<='" + data.dataf() + "' ) ";
String s = "select tamanho from contrato where contratoId=" + codContrato + "";
System.out.println("" + s);
ResultSet rs4 = st.executeQuery(s);
rs4.next();
float tamContrato = Float.parseFloat(rs4.getString("tamanho"));
System.out.println("" + tamContrato);
resultado = (totcondo(codContrato) / somaC()) * tamContrato;
System.out.println("return resultado aqui " + resultado);
} catch (Exception e) {
e.printStackTrace();
}
return resultado;
}
private float somaC() {
float somaContratoT = 0;
try {
String t = "select sum(tamanho) as soma from contrato where ativo='t' ";
System.out.println("" + t);
ResultSet rs2 = st.executeQuery(t);
rs2.next();
somaContratoT = Float.parseFloat(rs2.getString("soma"));
System.out.println("" + somaContratoT);
} catch (Exception e) {
e.printStackTrace();
}
return somaContratoT;
}
private float totcondo(int c) {
System.out.println("id contrato no metodo totcondo "+c);
float totalCondo = 0;
try {
String y = "SELECT A.tamanhoTotal,A.condominioId FROM condominio A, contrato B WHERE A.condominioId =B.condominioId and B.contratoId=" + c + " limit 1";
System.out.println("" + y);
ResultSet rs3 = st.executeQuery(y);
rs3.next();
totalCondo = Float.parseFloat(rs3.getString("tamanhoTotal"));
System.out.println("" + totalCondo);
} catch (Exception e) {
e.printStackTrace();
}
return totalCondo;
}
mas nao sei onde tofechando
a logica eh isso ai
to criando o pdf na mao como disse
e o erro aponta pro while que tem no metodo reletoriodevedores
nao sei por que
esqueci de fala ele percorre o while 1 vez executa o metodo
calculaCub
e faz oque tem que fazer ali
quando volta pra fazer o while de novo ele da o erro
agora coloquei tudo como voce falou e
dah esse erro justo nessa linha do st1.setInt
mas ele pelo menos percorre todo while
mas nao calcula nada por causa desse erro
No parameters defined during prepareCall()
cara soh te pesso isso por que nunca trabalhei com preparedstatement nao faço nem ideia do que pode tah acontecendo
flw
intendi!!
o sql eh o mesmo!
tah dando outros erros aqui vo tentar colocar todas as consultas envolvidas nesse metodo com o preparedstatement
talvez de certo
vlw a ajuda cara