Refresh em um registro alterado via update

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
marlonpasquali
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 248
Registrado em: Sex, 06 Fev 2009 3:02 pm
Localização: ERECHIM - RS

Bom dia,
Preciso de ajuda por favor.
Tenho um botão em um form que faz um update em alguns campos da tabela.
Gostaria que depois do update fizesse um refresh para mostrar no form a atualizaçao feita. Fiz no when_button_pressed o seguinte:

declare
Existe number :=0;
Retorno number;
v_database varchar2(255);
Begin

Begin
Select 1 into Existe from PCN_USUARIOS_TRANSP
where nome = :parameter.P_NOME
and Fechar = 'S';
Exception
When others then
Existe := 0;
End;

If Existe = 0 Then
set_alert_property ( 'P_APONTADOR', ALERT_MESSAGE_TEXT, 'Usuário Não autorizado a Fechar Ocorrências !!!');
retorno := show_alert ( 'P_APONTADOR');
RAISE Form_Trigger_Failure;
Else
Begin
v_Database := GET_ITEM_PROPERTY ('PCN_OCORRENCIAS_TRANSP.Registro', DATABASE_VALUE);
Update PCN_OCORRENCIAS_TRANSP set DataFim = sysdate , Status = 'Fechado';
COMMIT;
GO_BLOCK('PCN_OCORRENCIAS_TRANSP');
CLEAR_BLOCK;
EXECUTE_QUERY;
End;
End if;

End;


Mas, isso não está me mostrando o registro que eu alterei. Ele faz a query e mostra o primeiro registro da tabela.

Como posso trazer o registro corrente que estou atualizando.

obrigado,
Marlon
davidmeloboy
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 54
Registrado em: Sex, 05 Set 2008 1:53 pm
Localização: Parobé - RS
Contato:
David.

Quarda a pk do teu registro em um parameter ou em uma variável, e antes do execute-query do teu código.
Aí na trigger PRE-QUERY do bloco você testa se você tem valores armazenados nas variáveis, aí você manda os itens receberem os valores da pk que foram guardados, depois limpa as variáveis.
Quando executar a query, já vai restringir pelo registro que você estava. Se não tiver nada armazenado nas variáveis, vai fazer a consulta sem restrição.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Google [Bot], Majestic-12 [Bot] e 17 visitantes