[firebase-br] RES: Passar nome do campo como parâmetro em Stored Procedure
daniel
daniel em vipa.com.br
Seg Fev 9 12:42:20 -03 2009
Olá Márcio!
Utilize o Execute Statement.
Acho que sua SP ficaria mais ou menos assim:
begin
for execute statement 'select o.CD_PRODUTO,o.OQTD,' || :CAMPO_ENT || 'from
orcami o inner join PRODUTOS p on p.CD_PRODUTO=o.CD_PRODUTO where o.ONUM='
|| :ONUM_ENT
into :ocod_var,:oqtd_var,:esto_var
do
begin
if (:OQTD_VAR>:ESTO_VAR) then
execute statement 'update PRODUTOS set ' || :CAMPO_ENT
||'='||:CAMPO_ENT-:oqtd_var||' where codp='||:ocod_var;
else
OCOD_SAI=:ESTO_VAR;
suspend;
end
end
Acho que é isso. Só não testei :D.
Sds,
Daniel
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Marcio R. Fonseca
Enviada em: domingo, 8 de fevereiro de 2009 23:24
Para: lista em firebase.com.br
Assunto: [firebase-br] Passar nome do campo como parâmetro em Stored
Procedure
Caros amigos,
tentei criar uma SP que recebesse como parametro o nome de um campo para
atualizar
begin
for select o.CD_PRODUTO,o.OQTD,:CAMPO_ENT from orcami o inner join PRODUTOS
p
on p.CD_PRODUTO=o.CD_PRODUTO where o.ONUM=:ONUM_ENT into
:ocod_var,:oqtd_var,:esto_var do
begin
if (:OQTD_VAR>:ESTO_VAR) then
update PRODUTOS set :CAMPO_ENT=:CAMPO_ENT-:oqtd_var where
codp=:ocod_var;
else
OCOD_SAI=:ESTO_VAR;
suspend;
end
end
Existe alguma maneira de se fazer isso?
Grato
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista