O problema é o seguinte. Eu quero calcular um
total, inserindo em um campo, de que mesa quero fazer isso. Ele pega essa mesa,
vai na tabela pedido, e pega qual o codigo do produto e a quantidade. Com o
codigo do produto ele vai na tabela produto e pega o preco relacionado a esse
codigo.
Eu fiz um loop enquanto tivesse registro e
incrementava o total do pedido.
O codigo fonte esta aí embaixo.
O problema é quando ele chega na "reset =
statement.executeQuery(prec);", la perto do final. Ele so executa uma vez o
do/while mesmo tendo 3 registros. E se eu colocar essa linha e as 3 abaixo dela
como comentario, o programa passa pelos loops, tanto do for quanto do do/while
todas as vezes.
Nao se pode, no mesmo ResultSet executar instrucoes
diferentes???
Como eu faria para calcular esse
total?
Obrigado
Andre
Statement statement
= conexao.createStatement();
String codigo = "SELECT codproduto, quantidade FROM pedido WHERE mesa ='" + painel.mesa.getText() +"'"; ResultSet rs =
statement.executeQuery(codigo);
rs.next(); ResultSetMetaData rsmd = rs.getMetaData(); int quantidade = 0, preco=1; String codproduto = "", prec; float total = 0; ResultSet reset; do { for (int i = 1; i <= rsmd.getColumnCount(); ++i) { switch (rsmd.getColumnType(i)) { case Types.VARCHAR: { codproduto = rs.getString(i); } break; case Types.INTEGER: { quantidade = rs.getInt(i); } break; default: }
}
prec = "SELECT preco FROM produto WHERE codproduto = '"+ codproduto +"'"; reset = statement.executeQuery(prec); reset.next(); preco = reset.getInt(1); total = total + (preco * quantidade);
}
while ( rs.next());
painel.total.setText(Float.toString(total));
saida.setText("Total
Calculado");
saida.repaint();
statement.close(); } catch (SQLException sqlex) { sqlex.printStackTrace(); saida.append( sqlex.toString()); |