Sintaxe de BD

3 respostas
A

Boa noite,
tenho o seguinte problema, tenho uma tabela chamada PEDIDOS -> PEDIDOXPRODUTO <- PRODUTO

Uploaded with

minha sql esta da seguinte forma

try {
        if (C.conectar()) {
            try {
                JOptionPane.showMessageDialog(null, this.codCliente);

                if (C.executarCRUD("INSERT INTO pedido(Cliente_Codigo_Cliente,Situacao_Pedido,Data_Pedido) VALUES('" + this.codCliente + "','" + cbSituacao.getSelectedItem().toString() + "','" + mskDataCC.getText() + "')")) {
                    
                    if (C.executarCRUD("INSERT INTO pedidoxproduto (Pedido_cod_Pedido,Produto_Codigo_Produto,Quantidade) VALUES (" + this.codPedido + "," + this.codProduto + "," + cbQuantidade.getSelectedItem().toString() + ")")) {
                            if (C.executarSql("SELECT MAX(Cod_Pedido) as cod_Pedido from pedido")) {

                                codPedido = Integer.parseInt(C.retornaCampo("cod_Pedido"));
                                                               
                           }
                        }
                        JOptionPane.showMessageDialog(null, "cod pedido" + codPedido);
                        if (C.executarSql("SELECT Preco_Produto FROM produto WHERE Codigo_Produto =" + codProduto)) {
                            valor = Double.parseDouble(C.retornaCampo("Preco_Produto"));
                            qtd = Integer.parseInt(cbQuantidade.getSelectedItem().toString());
                            total += valor * qtd;
                            txtTotal.setText(Double.toString(total));
                        }
                    }

                     //JOptionPane.showMessageDialog(null, "Pedido Inserido Com Sucesso");
                }
            } catch (SQLException ex) {
                Logger.getLogger(CarrinhoCompraGui.class.getName()).log(Level.SEVERE, null, ex);
            }

        } else {
            JOptionPane.showMessageDialog(null, "Erro ao conectar com o banco de dados", "ERRO", JOptionPane.ERROR_MESSAGE);
        }
       

    } catch (SQLException ex) {
        Logger.getLogger(CarrinhoCompraGui.class.getName()).log(Level.SEVERE, null, ex);
    }
    
     preencherTabelaPedido();

so que na hra de preencher na tabela PEDIDOXPRODUTO
ele nao cadastra
codPedido =1 produto = 2 qtd = 10
codPedido =1 produto = 1 qtd = 20
codPedido =1 produto = 12 qtd = 3

ele cadastrar

codPedido =1 produto = 3 qtd = 10
codPedido =2 produto = 4 qtd = 10
codPedido =3 produto = 5 qtd = 10

se alguem souber como faz e quizer ajudar seria uma boa :D

3 Respostas

allan.tavares

Olá,

Não sei se já resolveu, meu palpite seria dar uma analisada nessa parte:

if (C.executarSql("SELECT MAX(Cod_Pedido) as cod_Pedido from pedido")) {
           codPedido = Integer.parseInt(C.retornaCampo("cod_Pedido"));                                            
 }

A impressão que dá é que ele está pegando sempre o último pedido cadastrado no banco, se o campo for auto increment isso pode ser um “problema”, dá uma debugada aí…

Qualquer novidade avisa,

ViniGodoy

IMPORTANTE: Se você é novo no fórum, leia esse tópico:

Em especial a parte que falar sobre não colocar o título em letras maiúsculas.

marcospaulo.suporte

allan.tavares:
Olá,

Não sei se já resolveu, meu palpite seria dar uma analisada nessa parte:

if (C.executarSql("SELECT MAX(Cod_Pedido) as cod_Pedido from pedido")) {
           codPedido = Integer.parseInt(C.retornaCampo("cod_Pedido"));                                            
 }

A impressão que dá é que ele está pegando sempre o último pedido cadastrado no banco, se o campo for auto increment isso pode ser um “problema”, dá uma debugada aí…

Qualquer novidade avisa,

ISSO MESMO.

Ele trará o valor maximo do campo.

Por isso sempre retorna ‘10’

codPedido =1 produto = 3 qtd = 10
codPedido =2 produto = 4 qtd = 10
codPedido =3 produto = 5 qtd = 10

Criado 25 de novembro de 2012
Ultima resposta 27 de nov. de 2012
Respostas 3
Participantes 4