Fórum SOMA DE DADOS NO DELPHI - UM NOVO DADO COM O JÁ EXISTENTE NO BD #619275
03/01/2023
0
Consigo pesquisar o pedido aberto e o produto pedido, mas na soma diz que o valor não é válido. Estou usando MySql
With dm.SQL_EstoqueSede do
Begin
//realiza a pesquisa do produto no estoque
Active;
Close;
Sql.Clear;
Sql.Add (''''''''Select * from tb_estoque_sede'''''''');
sql.Add(''''''''where produto_estoque = :produto''''''''); //pesquisa o produto
parambyname (''''''''produto'''''''').Value := ComboEdit1.Text; (edit onde informo o produto que chegou);
OPEN;
//Edit1 tá conectado com a linha quantidade da tabela de estoque
//quando realiza a pesquisa edit recebe automaticamente o quantitativo do produto pesquisado
//variaveis do tipo inteiro
quant := StrToInt (edit1.text); //edit1 recebe o valor que já tá no estoque
quantidade := StrToInt (editquantidade.text); //editquantidade recebe o valor que chegou
quantidade2 := quant + quantidade;
edit1.text := IntToStr (quantidade2);
Edit;
post;
End;
o código executa mas quando vai salvar o produto que chega, salva o pedido, mas não soma o quantitativo.
Aleksandro Soares
Curtir tópico
+ 0Posts
04/01/2023
Natanael Ferreira
Exemplo:
.... // o restante do seu código acima
Edit;
FieldyByName('quantidade ').value := quantidade2; // inseri essa linha, adapte ao nome do seu campo
post;
Gostei + 0
05/01/2023
Arthur Heinrich
Imagine que seu estoque possui 100 unidades do produto e dois usuários estão tentando comprar 80 unidades.
Se ambas as requisições chegam simultaneamente, ambos identificarão 100 unidades no estoque, validarão a venda e, como resultado, você terá vendido 160 unidades e o estoque será atualizado com um saldo de 20 unidades.
Nunca podemos confiar em valores lidos e exibidos na tela, pois entre a exibição e o uso da informação, os dados podem ser alterados por outros usuários.
Se quiser manipular dados como estoque ou saldo de conta corrente, por exemplo, sempre atualize o dado no banco.
Por exemplo, para retirar 80 unidades do produto 1, você pode fazer algo como:
update estoque set saldo = saldo - 80 where id_produto = 1 and saldo >= 80
Então, você verifica se uma linha foi atualizada ou não. Se foi atualizada, o saldo já está corrigido e garante que outros usuários não utilizarão o produto retirado do estoque. Caso não seja atualizada nenhuma linha, é sinal de que o produto não existe, ou não possui a quantidade necessária em estoque.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)