Travamento/Sincronização

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
jfnandopr
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 10 Abr 2008 11:10 am
Localização: Toledo - Pr

Olá,

se alguém puder me ajudar... quando no form é executado algum procedimento do banco que demora muito, ele trava atela certo...

alguém sabe como reseolver esse problema.. tipo, como criar uma "thread" que faca alguma outra coisa em outro bloco, algo
assim?

pra expecificar, quero que seja exebido uma barra de progressao que fica vindo e voltando enquando estiver sendo executado a rotina.

Desde já obrigado, t+
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother, beleza?

Cara, você até pode criar uma Progress Bar pra utilização neste teu processo.

Dá uma procurada sobre Progress Bar ou Barra de Progresso aqui no fórum, que irá encontrar inclusive exemplos prontos.

Ela foi desenvolvida utilizando SYNCHRONIZE, porém, este tipo de "refresh" tem um bug, caso você clique em outra janela e depois novamente no forms.

Dê uma olhada também, aqui no fóum, sobre SYNCHRONIZE, que irá encontrar exemplos e informações, como neste tópico:
http://www.glufke.net/oracle/viewtopic.php?t=2924.

qualquer coisa, manda pra gente.
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

Mas se a proc ou package for de BANCO, isso não vai funcionar.
Isso porque a execução é passada pra essa procedure no BANCO e enquanto isso, o forms TRAVA!

Só vai liberar depois que a PRC terminar. Daí a execução volta.

UMA FORMA de fazer isso, é executar a package através de uma outra sessão! Daí existem algumas formas de fazer isso:

1. Criar um OUTRO forms que chama o programa. Daí você abre esse form com OPEN_FORM e não com CALL_FORM. Dessa forma, haverá uma outra sessão e não vai impactar a primeira.

2. Outra forma é executar via JOB, a sua procedure. Tipo, cria um JOB que executa a procedure, depois exclui o job. Dessa forma a execução fica em paralelo também.

:-o
jfnandopr
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 10 Abr 2008 11:10 am
Localização: Toledo - Pr

Valeu pessoal!! Entendi!!

Ótimas ideias!!!

vou tentar fazer e qualquer coisa dou um grito!!!

falow
Responder
  • Informação
  • Quem está online

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