Select e for para gravação
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?
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
Curtidas 0
Respostas
Soeuseijothaz
13/11/2014
Isso pode ser feito via SQL.
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.
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