Procedure para baixar estoque

Firebird

12/10/2005

Fiz uma procedure simples, para baixa de estoque(teste), com tres parametros somente. qde, qde_saida e cod. Após a declaração da procedure fiz: update tabela set qde =:qde-qde_saida where cod =:cod(no escopo da sp). Na chamada no form, a dúvida é o parametro qde, pois ele vem diretamente da tabela em questão. Como no meu datamodule so tenho SqlStoredProc e algumas SqlQuery, mas somente para consulta, pergunto: Como passar o parametro qde, pois ele vem de dentro da tabela?(É o próprio campo).
Por exemplo: qde_saida = edSaida.AsFloat, cod = editCod.text e qde? Ele é o próprio campo, como não tenho querys e nem tabelas, samente SP, como fazer? Se tivesse tabela ou query, faria qde:=tabelaqde.value e pronto, mas não é possível. Pensei na declaração da procedure, mas como fazer?(no escopo da procedure). Grato!!! Uso DBExpress e Delphi 7 com FB 1.5


Paulo

Paulo

Curtidas 0

Respostas

Afarias

Afarias

12/10/2005

|Na chamada no form, a dúvida é o parametro qde, pois ele vem
|diretamente da tabela em questão

extamente, esse parâmetro não deve existir. O update deveria ser:

update tabela set qde = qde - :qde_saida where cod = :cod


apenas com os parâmentros :qtde_saida e :cod


T+


GOSTEI 0
Paulo

Paulo

12/10/2005

Fiz dessa forma conforme o Afarias me passou mas não atualiza nada, aliás, minhas procedures não atualizam, pq será? Elas são feitas +- assim:

create procedure teste(op char(1),cod integer, nome varchar(35)) a begin if op = ´A´ then begin update tabela set nome =:nome where codnome =:cod; end end


Eu coloco um campo OP, pois na mesma procedure eu trabalho com INSERT, UPDATE E DELETE, depende do OP. No Insert OK, mas no Update, nada. Ainda não testei o delete.


GOSTEI 0
POSTAR