post

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
guelaseca
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 21 Dez 2005 12:00 pm
Localização: Ivoti

Boa tarde,

tenho dois blocos ligados por uma relation. Informo um registro no bloco pai e vários registros no bloco filho. quando navego para inserir o próximo registro no bloco pai aparece uma mensagem pedindo para salvar o registro. Gostaria de saber se tem alguma maneira de informar todos os registros, pais e filhos, e salvar somente no final?
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

É exatamente pra isso que serve o comando POST.
Ele faz os updates no banco das alterações/inserções feita no FORMS, mas não dá o commit. (apenas faz os comandos INSERT e UPDATE).

Essas informações só são vistas por você, pois estão na sua sessão e ainda não foram comitadas.

Após o COMMIT, que isso ficará visível para os outros usuários.
Se você quiser desfazer, terá que dar um ROLLBACK.

:-o
guelaseca
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 21 Dez 2005 12:00 pm
Localização: Ivoti

Não posso usar o comando post pois tenho várias validações nas triggers pre-insert e pre-update que devem disparar somente no momento em que realmente vai salvar.
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

Talvez seja necessário alterar a forma que o programa funciona.
OU coloca as validações na PRE-COMMIT.
meguelito
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 60
Registrado em: Ter, 17 Jan 2006 1:45 pm
Localização: Santa Catarina
Att.:
Alan Juliano Metzger
Programador Oracle
Inside System Informática
Msn/E-mail: alanjuliano@yahoo.com.br

Você também pode usar o comando forms_ddl('commit') e alterar o status do registro para QUERY, também vai ajudar mas é uma gambiarra danada.

Rsss...

falou.
eduardo
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 56
Registrado em: Ter, 10 Jul 2007 3:24 pm
Localização: sp
Sempre há algo a aprender....

<Você também pode usar o comando forms_ddl('commit') e alterar o status do registro para QUERY, também vai ajudar mas é uma gambiarra danada.

Rsss...

falou. >

como eu implemento isso?

eu tenho um trigger post query que popula alguns campos, se eu clicar sair do forms ele pergunta se eu quero salvar as alterações.
verifico que a variavel system form status esta como changed, como faço para mudar para normal?
meguelito
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 60
Registrado em: Ter, 17 Jan 2006 1:45 pm
Localização: Santa Catarina
Att.:
Alan Juliano Metzger
Programador Oracle
Inside System Informática
Msn/E-mail: alanjuliano@yahoo.com.br

Simples cara, você pode verificar assim:

Selecionar tudo

IF :System.Form_Status = 'CHANGED' ...

Se estiver então faz o seguinte comando.

Selecionar tudo

SET_RECORD_PROPERTY(:System.Cursor_Record, 'BLOCO', STATUS, QUERY_STATUS);
E pronto o registro vai estar como Query novamente.
eduardo
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 56
Registrado em: Ter, 10 Jul 2007 3:24 pm
Localização: sp
Sempre há algo a aprender....

muito obrigado! :D
Responder
  • Informação