FRM-40405 INDESTRUTÍVEL !!!!!

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Renan Orati
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 90
Registrado em: Qui, 23 Ago 2007 3:40 pm
Localização: São José do Rio Preto - SP

SEMPRE A SEGUNDA VEZ QUE você EXECUTA UMA TRANSAÇÃO, COMO POR EXEMPLO:

Selecionar tudo

DELETE_RECORD;
COMMIT;
O FORMS EXIBE A MENSAGEM:
FRM-40405: Não há alterações a serem aplicadas.
EU JÁ TENTEI DE TUDO... já TENTEI "WHEN OTHERS",
JÁ TENTEI O GATILHO "ON-ERROR",
JÁ TENTEI O "CLEAR_MESSAGE" E NADA...

SERÁ QUE ALGUÉM CONHECE UMA SOLUÇÃO???

AGRADEÇO A TODOS...

=D
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Faz o seguinte... Não está dando certo, pois trata-se de uma mensagem e, o ON-ERROR não pega mensagens.

Coloque na trigger de Form, ON-MESSAGE.

Tem um exemplo no próprio forms sobre isso a qual posto abaixo:

Selecionar tudo

DECLARE 
    lv_errcod NUMBER := MESSAGE_CODE;
BEGIN 
  IF lv_errcod = 40350 THEN 
     -- coloque teu código aqui
     NULL;
  END IF;   

END; 
Qualquer coisa, manda pra gente.
Renan Orati
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 90
Registrado em: Qui, 23 Ago 2007 3:40 pm
Localização: São José do Rio Preto - SP

Opa Trev...

Como sempre... na mosca!!!

rsrsrs... =D

vlwwwwwww!!!
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

Tem um modo mais simples.

Selecionar tudo

DELETE_RECORD; 

:SYSTEM.MESSAGE_LEVEL := 5;
COMMIT;
:SYSTEM.MESSAGE_LEVEL := 0;
Se não funcionar, troque o nivel da MSG de 5 para 25.

Não sei se existe alguma contra indicação, mas sempre usei assim e deu certo !!!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Eu sempre fiz assim:

Selecionar tudo

DECLARE
  VLEVEL NUMBER;
BEGIN
  VLEVEL:=:SYSTEM.MESSAGE_LEVEL;
  :SYSTEM.MESSAGE_LEVEL:=25;         
  COMMIT;
  :SYSTEM.MESSAGE_LEVEL:=VLEVEL;   
END;
Pois dessa forma, ele deixa MESSAGE_LEVEL do jeito que estava.

Encontre mais em:
http://glufke.net/oracle/viewtopic.php?t=40
http://glufke.net/oracle/viewtopic.php?t=1175

Aqui tem uma forma bem legal tb:
http://glufke.net/oracle/viewtopic.php?t=3167

:-o
kingysim
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Sáb, 10 Jan 2009 3:04 pm
Localização: Campinas - SP

Boa tarde pessoal.

Tentei seguir as recomendações de vocês, tanto para criar uma trigger de key-commit para mudar o message-level, alterar a On-Message e a On-Error mas nada disso funcionou. O FRM-40405 continua aparecendo. Também tentei alterar as formas de fazer o commit, utilizando commit_form e nada.
Talvez algo que seja diferente é que minha base table não é uma tabela e sim uma view. Porém criei triggers de on-insert, on-delete e on-update para fazer o tratamento de tudo que tenho que salvar no banco. Todos meus itens são base table = Sim, o q faria com que o forms entendesse que estou alterando um item base table.
Alguém tem alguma idéia?

Obrigado,
Reinaldo
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Se todos itens são BASE TABLE, qual é a moral de usar uma VIEW ?
Não pode colocar direto na tabela ?

O grande objetivo de usar views como base de um bloco é justamente a VIEW buscar informações que não estão na própria tabela...
kingysim
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Sáb, 10 Jan 2009 3:04 pm
Localização: Campinas - SP

Na realidade me expressei mal. Todos itens possíveis de alteração são base table.
Utilizo uma view para tratar as consultas de maneira mais simples).
marlonpasquali
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 248
Registrado em: Sex, 06 Fev 2009 3:02 pm
Localização: ERECHIM - RS

Só para complementar. Se alguém passar por isso, pode ser util.

Quando você faz uma chamada a outro form via open_form, tem que colocar no parametro como SESSION e não colocar NO_SESSION, senão os comandos dos gatilhos para tratar as mensagens não vão funcionar no form chamado.

Att,
Marlon
Responder
  • Informação
  • Quem está online

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