GARANTIR DESCONTO

Fórum Capturar o tempo de um update de uma Query #337597

08/02/2007

0

Saudações gente,
estou trabalhando numa aplicação com Delphi 7 Enterprise, PostGreSql 8.1 e Zeos 6.5.1. Gostaria de saber se é possível capturar o progresso de uma query e jogar num gauge ou ProgressBar. Estou realizando update com sub-consultas e o processo fica um pouco lento. Tem como eu jogar o tempo que a query leva para realizar o update num gauge ou progressbar? Sei que com o BDE existe essa possibilidade (só não sei como fazer) mas não sei se existe utilizando a Zeos ou qualquer outro componente de acesso.
Agradeço desde já toda ajuda.


Zooropa

Zooropa

Responder

Posts

13/02/2007

Zooropa

Pessoal, alguém sabe se é possível realizar esse processo?
Agradeço qualquer ajuda.


Responder

Gostei + 0

14/02/2007

Zooropa

Gente,
eu só quero saber se é possível realizar isso...se não for eu vou tentar outra coisa mas preciso saber se existe essa possibilidade...


Responder

Gostei + 0

14/02/2007

Callegaro

Como é implementado seu código? Se você utiliza um loop que vai varrendo uma query e fazendo alterações em outra, daí dá pra colocar um progresso. Porém, se tua query é somente uma execução (por exemplo: update pedidos set total = sum(precos)), daí não dá.


Responder

Gostei + 0

14/02/2007

Zooropa

Saudações amigo,
a query é mais ou menos assim:

update tabela set valor= (select ndebito from tcontabil where cod_usu = ´0079´) where cod_usu = ´0079´


É um pouco mais complexo que isso mas este update altera todos os registros da tabela de uma só vez de dois campos de valores (neste caso, 2246 registros) porém a subconsulta é maior (possui tabelas joinadas) e os campos de checagem também. A alteração funciona e leva cerca de 50 segundos porém eu queria passar isso pra um gauge pra o usuário saber o que está acontecendo e não pensar que está travado.
Detalhe: fora esta eu possuo mais duas queries do mesmo tipo dentro da mesma procedure.
Obrigado.


Responder

Gostei + 0

21/02/2007

Gm.gui

cara, vc pode capturar o time antes da execução e depois no fim, e calcular, de outra forma, vc tem que pesquisar muito, eu ainda não vi ninguem conseguir...essa é a forma usada....


Responder

Gostei + 0

12/03/2007

Ricknetbr

No paradox dava, mas no postgres não. Você só terá o retorno do banco quando toda a instrução antes do commit for executada.

Na realidade, é indiferente para o usuário se está atualizando o primeiro ou o último, ele quer somente saber se o programa não travou. O tempo que isso vai levar, será o tempo necessário.

Eu pessoalmente coloco uma barra de progresso que vai ´andando´ e faço a verificação para ver se não perdi a conexão com o banco. Assim o usuário sabe que o aplicativo não travou.

Espero que ajude.

Abraços
Ricardo.


Responder

Gostei + 0

12/03/2007

Aerreira

update tabela set valor= (select ndebito from tcontabil where cod_usu = ´0079´) where cod_usu = ´0079´

Caro Zooropa, você faz essa atualização apenas num único COD_USU de cada vez manualmente, ou faz um loop pegando todos os cod_usu´s e em cada um deles executa esse update? Se for isso, então coloque o Cauge/ProgressBar no loop de cod_usu. Não ficará como deseja, mas já vai melhorar seu resultado.


Responder

Gostei + 0

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

Aceitar