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]
-------------------------------------------------------------------------

Responder a