Pessoal, bom dia.
Tenho uma rotina de atualização de estoque via código que executa essa frase SQL:
UPDATE produto_estoque SET estoque_atual = estoque_atual - 2 WHERE codigo = 1
Problema começa quando a rotina funciona só quando está em modo Debug. Em operação normal, não funciona de jeito algum.
Tem alguma lógica isso, pois a rotina contrária, que incrementa no estoque, funciona perfeitamente.
Segue o método, e os parâmetros são:
- String campo: nome do campo que vai ser incrementado na tabela produto_estoque
- double incrementoValor: qtde que será incrementada
- int codigoProdutoEstoque: código (chave) dessa tabela produto_estoque
public void somarSaldoEstoque(String campo, double incrementoValor, int codigoProdutoEstoque) throws SQLException {
try {
StringBuilder sb = new StringBuilder();
sb.append("UPDATE produto_estoque SET ");
sb.append(campo);
sb.append(" = ");
sb.append(campo);
sb.append("+");
sb.append(incrementoValor);
sb.append(" WHERE codigo = ");
sb.append(codigoProdutoEstoque);
conexao = ConexaoMysql.recuperarConexao();
ps = conexao.prepareStatement(sb.toString());
ps.executeUpdate();
} finally {
ConexaoMysql.fecharConexao(conexao, ps);
}
}
Se alguém puder me dar uma luz nisso. Ou sugerir um jeito mais elegante de incrementar/decrementar no estoque, agradeço.
Obrigado.