[Forms] Verificação de Registro Filho

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

Pessoal, boa tarde.

Estou mais uma vez pedindo um help aos senhores para um problema que estou tendo. Tenho um bloco base-table pai que se uma opção estiver setada (Reservado), esse devera possuir pelo menos, um registro no bloco base-table filho. Essa é a uma das regras, a segunda é que nenhum registro pode ser salvo automaticamente, ou seja, o usuário tem que salvar manualmente.

Com isso na cabeça, tentei fazer a verificação na hora que o usuário salva os dados (key-commit) fazendo um loop no bloco pai e no bloco filho. O defeito dessa verificação é que na hora que eu mudo de registro no loop, ele pede para salvar, imagina essa mensagem de "Deseja salvar as alterações" para 10 registros ??? Fora que se tiver uma queda de energia/conexão no meio, as informações não serão consistentes !!!

Bom, a segunda tentativa foi criado um campo não base table no bloco pai com a quantidade de registros filhos, assim que inseria ou deletava os registros filhos, ele incrementava/decrementava esse campo, mas também não funcionou, colocamos no bloco pai a verificação nas triggers pre-insert/pre-delete (Para não deixar inserir sem o registro filho) e no bloco filho, colocamos a incrementação/decrementação nas triggers post-insert/post-delete (Para só contar o que realmente está no banco), só que exatamente por queremos ter as informações consistentes, ele não incrementa/decrementa.

Preciso de alguma ideia de como fazer essa verificação.

Abraços.
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Já tive que fazer algo deste tipo.

O que fiz foi o seguinte:
bloco pai BL_P
bloco filho BL_F

Na validação do key-commit validei da seguinte forma

Selecionar tudo

if :BL_P.(qualquer campo obrigatório) != Null
  And :BL_F.(qualquer campo obrigatório) != Null Then
  Commit;
Else
  mensagem de erro...
End If;
Responder
  • Informação
  • Quem está online

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