Parece-me que o erro se resume em usar o
mesmo objeto Statement, antes de terminar
o processamento anterior.
Galileu Batista
www.jspbrasil.com.br
www.soujsp.com.br
> 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());
>
__________________________________________________________________________
Acesso f�cil, r�pido e ilimitado? Suporte 24hs? R$19,90?
S� no AcessoBOL. http://www.bol.com.br/acessobol/
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------