Lock Table quando maximizo um text item

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
leandromiranda87
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 43
Registrado em: Ter, 20 Mar 2012 11:37 am
Localização: Campinas
Leandro L. Miranda

Olá pessoal,

Estou com um problema em uma tela onde quando dou um CTRL+E (maximizo), na tela um lock é gerado na tabela (lock de linha, até aí td bem).

Isso é muito comum na aplicação, os usuários abrem a tela e abrem o text item para ter um visualização melhor.

O problema é que, se eles não fizerem nenhuma alteração, mesmo que saiam da tela o lock continua.
Mesmo que a consulta seja re-executada, o lock não é liberado.
O lock só é desfeito se a tela for fechada.

Como o lock é de linha, de começo isso não é problema, mas com algum tempo aberto, outros usuários começam a ser afetados.

Alguém já teve algum problema semelhante?

vlw.
leandromiranda87
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 43
Registrado em: Ter, 20 Mar 2012 11:37 am
Localização: Campinas
Leandro L. Miranda

Olá pessoal,

Pesquisei um pouco sobre isso e o atalho CTRL+E é uma chamada para a trigger KEY-EDIT.
Esse comportamento de gerar o lock é normal para o forms, dependendo de duas propriedades.

1 - No Data Block a propriedade LOCKING MODE, no meu caso esta setado como AUTOMATIC. Isso faz com que, quando o CTRL E é pressionado o lock é gerado. (e realmente, tem q ser assim no meu caso).
Uma possibilidade é setar como DELAYED, nesse caso o lock só será enviado ao banco em caso de commit. Para mim isso não é interessante, pois se tiver mais de um usuário alterando o mesmo registro, certamente terei sobreposição.

2 - No Item a propriedade LOCK RECORD (YES/NO). Essa propriedade é invalidada dependendo da propriedade do data block.

Vi algumas coisas sobre o Key Mapping e encontrei isso, https://kr.forums.oracle.com/forums/thr ... ID=1056788
O problema é que, não encontrei nada falando como desabilitar isso e também não consegui fazer :'(

Um meio que ainda está em avaliação é utilizar a trigger KEY-EDIT com corpo NULL, estamos avaliado se isso afeta a nossa aplicação ou não. (aparentemente não).
Como meu problema é que alguns dos usuários do sistema pressionam o CTRL E para melhorar a visualização, isso resolve. :-)
Agora, se ele começar a alterar algo e não salvar, terei o mesmo problema.. rsrs
Pesquisei um pouco sobre criar um temporizador, para que, com determinado tempo sem utilização do sistema a sessão seja finalizada (vou ver isso posteriormente).

De qualquer forma, alguém conhece algo sobre os Key-Maps?? já precisaram desabilitar algo e tiveram sucesso?

Obrigado,
Responder
  • Informação
  • Quem está online

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