Select e for para gravação

Delphi

13/11/2014

Bom, eu tenho uma situação um pouco diferente, mas as vezes, vocês podem me ajudar:

Eu tenho um formulário, onde eu faço o inventário.


Quando clico em "lançar", uma procedure vai em duas tabelas e faz a gravação dos lançamentos.

GEINVENTARIO - que recebe o cabeçalho


TB_MOVIMENTO - que recebe os produtos

Elas são ligadas por um id

Quando eu clico no "Gravar", eu consolido o documento e os itens, através de um update.

Após consolidar eu queria verificar se existe o item em uma outra tabela(GESALDOS), e se existir fazer um update. Se não existir quero gravar os produtos(na tabela GESALDOS).

Acredito que eu tenha que fazer um Select na TB_MOVIMENTO, visualizando os itens lançados para o documento e verificar um a um, através de um FOR se existe na GESALDOS e lançar.

Mas não estou sabendo como fazer.


Podem me ajudar?
Marcelo Henriques

Marcelo Henriques

Curtidas 0

Respostas

Soeuseijothaz

Soeuseijothaz

13/11/2014

Isso pode ser feito via SQL.

  IF(SELECT COM JOIN entre TB_MOVIMENTO e GESALDOS ) senão existir l) 
    INSERT INTO 
  ELSE
    UPDATE 


O scritp acima é só uma ideia e depende do bd que você esta usando para adaptá-lo a sua necessidade. A vantagem de usá-lo que é usando transação faz em uma única requisição ao server.

Agora você pode usar o for também, agora dependendo da quantidade de linha pode pesar.

Vamos ver outras opiniões e você define qual melhor estratégia para adotar.
GOSTEI 0
POSTAR