Fórum Executar uma Queryes concorrentes no delphi #442746

13/05/2013

0

Boa tarde,

Estou com um problema que é o seguinte:

Tenho uma procedure em banco que gerar vários registros de livro fiscal, esta procedure eu executo via um componente de strored procedure porém preciso ao mesmo tempo executar uma outra query com um select em uma tabela que eu incremento dentro desta procedure gravando o progresso do meu processo, desta forma eu queri poder apresentar um GAUGE progressivo com estes resultados mostrando ao meu usuário o status do processo.

Meu problema é, se eu executar em aplicações diferentes funciona, porém dentro da mesma aplicação a outra query so é executada após o componente detectar o final da execução da procedure.

já tentei fazer 2 Threads e executá-las deparadamente porem acontece o mesmo, só executa após o execSql ser finalizado.

Alguém ai sabe me dizer como eu isolo este componente para que ao acessar a propriedade execSql ele não trave a aplicação?

Grato.

Claudney Sessa..

Claudney Sessa..

Responder

Posts

13/05/2013

Alex Constâncio

Olá

Por falta de detalhes, estou assumindo que você está usando BDE. Para ter execuções concorrentes em BDE, você precisa que em cada thread exista um TSession e um TDatabase próprios e ligar estes o teu dataset. Se cada thread tiver um contexto totalmente isolado da outra (daí a necessidade de ter tanto o TSession quanto o TDatabase), será como se fossem duas instâncias separados do aplicativo e uma consulta não vai interferir na outra.

Alex
Responder

Gostei + 0

14/05/2013

Claudney Sessa..


Opa, eu eu estou sim utilizando BDE, na minha aplicação 3 camadas com DataSnap foi simples, pois deixo tudo isto em um procedimento no meu servidor de aplicação, já via BDE realmente tive este problema.

Irei fazer os testes aqui com a sua dica, e desde já fico muito grato por sua ajuda.

Vlw
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar