Como activar uma sequencia apenas ao gravar

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
ana.lopes
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Sex, 13 Mar 2009 12:51 pm
Localização: Lisboa

Bom Dia,
sou nova neste fórum e também a programar, por isso agradeço a vossa paciência.
Tenho um form (10G) com uma sequencia, mas a sequencia conta cada tentativa que se faz para introduzir os dados na base de dados. O que eu quero é que a sequencia só conte os registos que estão na BD e não todas as tentativas falhadas de gravar os dados.
Será que o código que está no when-new-record-instance está mal?

Selecionar tudo

Declare
	w_cur_seq		Number;
	
Begin	
	
	Select SEQ_UTENTE_ENTIDADE.Nextval
	Into w_cur_seq
	From dual;
	
	:blk_utentes.filial := w_cur_seq;
	Exception When Others Then
	w_cur_seq := 0;
	
End;
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

Então...

toda vez que da um nextval a sequence adiciona 1 ou o next dela, é assim mesmo, pra isso existe o currval, que usado no lugar do nextval diz o valor atual da sequence.


Att
ana.lopes
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Sex, 13 Mar 2009 12:51 pm
Localização: Lisboa

Muito obrigada pela explicação, eu não estava a perceber o que estava mal feito, agora já funciona.
:D
rodfbar
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 241
Registrado em: Ter, 09 Out 2007 11:15 am
Localização: Batatais - SP

normalmente disparo a sequence a nivel de trigger de banco da tabela,
a nivel de forms você pode disparar na trigger pre-insert a nivel do bloco
acho que se você utilizar o curval vai ter mais dor de cabeca com controles do forms, do que disparar o nextval nas que citei acima...

qualquer duvida estamos a disposicao
abrç
Responder
  • Informação
  • Quem está online

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