Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2942 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

tenho um executavel que fica no tray enviando e recebendo dados entre bancos.

exemplo:

while not tb1.eof

begin

tb2.campo := tb1.campo

application.processmessages; -> nesse ponto apos o primeiro registro, nem chega executar o next, ja fecha a query

 

tb1.next

end;

alguem ja passou por isso, pois a unica forma que conheco de nao travar a tela é process messages

 

Postado

Olá.

Já tentou rodar o processo em um thread?

Maiquel Parisotto

 

"Ora, a fé é o firme fundamento das coisas que se esperam, e a prova das coisas que se não vêem"

Postado

Bom dia,

Eu te aconselharia a tomar um pouco de cuidado com ProcessMessages dentro de laços de repetição, pois o seu custo em relação ao tempo é muito alto, causando perda de performance.

Em relação a fechar a query, creio que não seja pelo motivo do ProcessMessages, teríamos que verificar várias situações: Sua tabela esta posicionada corretamente no primeiro registro?(talvez algum evento na ' tb1 ', que causa isso tudo), ou algo do tipo.

Maiquel Parisotto

 

"Ora, a fé é o firme fundamento das coisas que se esperam, e a prova das coisas que se não vêem"

Postado

pois é mudei pra thread( nao sou expert no assunto). mais fica travando a tela, e queria deixá-la libre, pq eu poder clicar e um botao de cancelar a thread.

to criando as query( firedac ) tudo dentro de cada procedure da thread , e destruindo-as em blocos try-finally. segue em anexo as units.

se puder me ajudar, agradeço.

UMain.dfm

UMain.pas

  • 2 semanas depois ...
Postado

Olá, desculpa a demora em responder;

Você tentou verificar se o travamento não é quando chama o select?

Tenta dar uma estudada em TCriticalSection.

Maiquel Parisotto

 

"Ora, a fé é o firme fundamento das coisas que se esperam, e a prova das coisas que se não vêem"

  • Este tópico foi criado há 2942 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.