[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