Evento/trigger ao mover de um registro tabular para outro?

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

Bom dia galera

preciso fazer uma validação de períodos num bloco tabular onde um registro com um determinado período não sobreponha um outro período já cadastrado, eu já consegui fazer isso olhando os registros já salvos no banco, funcionou beleza, mas... se o usuário inserir vários registros no bloco tabular antes de salvar, eles ainda não estão no BD, e não consigo fazer essa validação dos registros que estão apenas no bloco e ainda não foram salvos.

penso que fazer um loop no bloco não seja o mais adequado, pois posso ter milhares de registros no bloco e, além de perder o foco do registro corrente.

a dúvida é: é possível forçar o forms salvar um registro quando eu mudar o foco dele, para quando eu for inserir outro todos os anteriores já estejam salvos no BD?

ps: já tentei WHEN-NEW-RECORD-INSTANCE mas não funcionou pois ele dispara no NOVO registro que está sendo criado e não no registro anterior que acabou de perder o foco.
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

Existe o comando POST, que faz exatamente a mesma coisa que o Commit, mas não faz commit:
* Ele envia todos os dados modificados para o banco.
* Se precisar inserir, ele faz os inserts
* Se precisar alterar ou apagar dados, ele faz tudo.
* MENOS o COMMIT!

Ou seja, se você fizer um POST, pode fazer query no banco de dados sem problema nenhum.
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

Hmm, parece que funcionou! \o/

realmente o POST grava no banco mas não comitta e se eu fechar o form sem salvar, ele faz um rollback automático! :P

coloquei o POST na trigger WHEN-NEW-RECORD-INSTANCE, então a cada novo registro criado o forms já salva as inserções automaticamente tornando a validação no banco possível.

estou testando aqui mas parece que está funcionando
muito obrigado pela dica.
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

O código ficou assim, apenas:

na trigger WHEN-NEW-RECORD-INSTANCE do bloco:

Selecionar tudo

IF :SYSTEM.BLOCK_STATUS = 'CHANGED' THEN			      
  POST;
END IF;
Responder
  • Informação
  • Quem está online

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