GERAR DINAMICAMENTE COMANDO SET_BLOCK_PROPERTY

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
vandre.torres
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Seg, 14 Jul 2008 3:52 pm
Localização: Joinville SC

ola pessoal gostaria de uma ajuda de vocês
estou tentando gerar dinamente o comando set_block_property buscando nome do bloco, propriedade e valor do banco. mas na linha que ele faz o set_block.... ele acusa o erro too many declarations of 'SET_BLOCK_PROPERTY'

alguém sabe como posso resolver este dilema

parte do codigo está abaixo valeu

Selecionar tudo

DECLARE 

  W_PROPRIEDADE tabela.DS_PROPRIEDADE%TYPE;
  W_VALOR            tabela.VL_PROPRIEDADE%TYPE;
  W_BLOCO           tabela.NM_BLOCO%TYPE;
 
  CURSOR PERMISSOES IS 
     SELECT  * tabela
     WHERE CD_APLICACAO = 'my_application';

BEGIN

   FOR C_PROC IN PERMISSOES LOOP

      W_PROPRIEDADE := C_PROC.DS_PROPRIEDADE;
      W_VALOR := C_PROC.VL_PROPRIEDADE;
      W_BLOCO := C_PROC.NM_BLOCO;
    
         SET_BLOCK_PROPERTY('||W_BLOCO||',W_PROPRIEDADE,W_VALOR);
      
   END LOOP;
SPECIALIZED
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Ter, 02 Out 2007 4:09 pm
Localização: São Paulo - SP

Cara, não estou com o Oracle na máquina que estou agora, mas pelo que estou percebendo, o cursor pode retornar mais de uma linha, sendo assim você pode estar setando dinamicamente inumeras vezes o bloco, isso pode estar causando o too many declarations... uma sugestão é você fazer um simples select atribuindo as variáveis e usá-las no SET_BLOCK... Tb acho que não é necessário você usar as aspas fechando o bloco...
davidmeloboy
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 54
Registrado em: Sex, 05 Set 2008 1:53 pm
Localização: Parobé - RS
Contato:
David.

Deve estar retornando valores inválidos para a set_block_property,
verifica o que está retornando nas variáveis!
Kothrine
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Ter, 20 Mai 2008 8:18 am
Localização: Taquara - RS
Gabriel Esquinati
"Faz tudo" Oracle...
Taquara - RS

Coloque sem as aspas que funciona ..

Selecionar tudo

set_block_property(lv_bloco, delete_allowed, property_false);
:D
viniciusbedra
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Seg, 08 Ago 2011 11:54 am
Localização: RS

E como faz pra depois que faz o set block
da um clear no bloco
Porque ele fica setado
e não queria que ficasse.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes