Capturar erros FRM do forms

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
jackie_0704
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 21
Registrado em: Qui, 10 Jan 2008 1:26 pm
Localização: Portlo Alegre - RS

Olá pessoal

Estou capturando os erros do forms, aqueles "FRM XXXXX" e colocando na seguinte tabela, já traduzidos pro português, via banco de dados:

Selecionar tudo

CREATE TABLE XXTR_ERROR_MSGS
 (
   error varchar2(55)  not null,
   descr_error  varchar2(100)  not null,
   primary key(error)
 );
fiz o seguinte insert into:

Selecionar tudo

insert into xxtr_error_msgs values
  ('FRM-40200'
   ,'Campo não editavel'
  );
e, no meu form, nas triggers "on-error" e "on-message", fiz o seguinte código pra chamar e traduzir o erro:

Selecionar tudo

declare
	 v_erro varchar2(55);
	 v_descr varchar2(2000);
begin
	v_erro := sqlcode;
	select descr_error
	  into v_descr
	  from xxtr_error_msgs
	 where error = v_erro;
	 message (v_descr);
	 
EXCEPTION
  WHEN too_many_rows then message('Error!' ||sqlerrm);
  WHEN no_data_found then message('Error!' ||sqlerrm);
  WHEN others then message('Error!' ||sqlerrm);

end;
Porém, está caindo na exceção "no data found" quando eu tento forçar o erro de campo não editável (Field is protected against update).

Alguém pode ajudar?

Obrigado
gokden
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 264
Registrado em: Dom, 19 Ago 2007 8:18 pm
Localização: Ribeirão Preto - SP
Lucas de Souza

OCA Developer
Analista de sistemas

isso é porque o SQLCODE não retorna o FRM-40200, ele retorna apenas a parte numerica do erro ORA, exemplo

Selecionar tudo

ORA"-00001"  <-- SQLCODE = -00001
para pegar o erro FRM é um desses codigo aqui:

Selecionar tudo

v_tipo_erro := MESSAGE_TYPE;
v_nro_erro  := MESSAGE_CODE;
v_mens      := MESSAGE_TEXT;

v_tipo_erro := ERROR_TYPE;
v_nro_erro  := ERROR_CODE;
v_mens      := ERROR_TEXT;
agora eu esqueci qual, mais ai no "on-error"/"on-message" você usa o message para verificar qual é o certo =D
jackie_0704
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 21
Registrado em: Qui, 10 Jan 2008 1:26 pm
Localização: Portlo Alegre - RS

Vou tentar isso mais tarde.

Obrigado !!! :D
Responder
  • Informação
  • Quem está online

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