Ajuda! Delphi 7 - Comandos de tela demoram a responder
Olá, pessoal!
Estou com um problema que pode até ser bobo de se resolver, mas, sinceramente não consigo:
Minha aplicação foi desenvolvida em Delphi 7 Enterprise e meu banco de dados é o SQL Server 2008.
Bem, às vezes, e esse é o pior, só às vezes, a minha aplicação demora para responder aos clicks do mouse nos botões. Ou a quelquer ação na tela. Pois é, eu vou lá no botão, clico e espero. Daí um tempo vejo o botão descer e subir e a aplicação começar a responder. Ou rolo uma lista, no teclado pressiono as setas pra baixo varias vezes e só depois na tela começa a responder. A resposta do BD em si não demora, só mesmo as ações na tela.
Mas isso não acontece em em todas as máquinas. Só vi acontecer em 2: 1 Windows 2000 Pro e outra Windows XP. O pior é que a Win XP é justamente a máquina do chefe do financeiro. Ele sempre tem pressa...
Já revirei todo meu código mas não consgo fazer idéia do que pode ser. Acho que não é problema de código se não, aconteceria nas outras estações também.
Alguém tem alguma sugestão ? Ficaria muito feliz em receber qualquer dica que fosse.
Obrigada pessoal. Tô no aguardo!
Magali
Estou com um problema que pode até ser bobo de se resolver, mas, sinceramente não consigo:
Minha aplicação foi desenvolvida em Delphi 7 Enterprise e meu banco de dados é o SQL Server 2008.
Bem, às vezes, e esse é o pior, só às vezes, a minha aplicação demora para responder aos clicks do mouse nos botões. Ou a quelquer ação na tela. Pois é, eu vou lá no botão, clico e espero. Daí um tempo vejo o botão descer e subir e a aplicação começar a responder. Ou rolo uma lista, no teclado pressiono as setas pra baixo varias vezes e só depois na tela começa a responder. A resposta do BD em si não demora, só mesmo as ações na tela.
Mas isso não acontece em em todas as máquinas. Só vi acontecer em 2: 1 Windows 2000 Pro e outra Windows XP. O pior é que a Win XP é justamente a máquina do chefe do financeiro. Ele sempre tem pressa...
Já revirei todo meu código mas não consgo fazer idéia do que pode ser. Acho que não é problema de código se não, aconteceria nas outras estações também.
Alguém tem alguma sugestão ? Ficaria muito feliz em receber qualquer dica que fosse.
Obrigada pessoal. Tô no aguardo!
Magali
Magali Faleiro
Curtidas 0
Respostas
Tiago Martins
23/09/2010
Quando ocorre de ficar lento, vocês está trazendo muitos dados do bd pra tela? Já verificou a query que traz os dados, tente otimiza-la.
GOSTEI 0
Magali Faleiro
23/09/2010
Olá! Obrigada pela resposta!
Acho que o problema não deve ser com a query não. Pois antes de ir no BD, já dá o problema.
Por exemplo, abro o programa e clico em algum item do menu. Pronto! Já demora a responder. E mesmo assim, acontece nas telas mais simples, desde a tela principal onde só tem menu, até as telas de consultas mais pesadas.
Depois, simplesmente volta ao normal. O pior problema é esse que um dia acontece e no outro não. Não sei mais onde caçar as causas.
Muito obrigada pela atenção, espero que ainda tenha mais dicas.
GOSTEI 0
Fábio Cruz
23/09/2010
Chegou a verificar se é sempre no mesmo momento que ocorre esses travamentos? Qndo trava é só seu programa ou o computador "inteiro"?
Experimente abrir o Gerenciador de Tarefas no momento dessas travadas (CRTL+SHIFT+ESC) e veja o que está pesando no exato momento.
Experimente abrir o Gerenciador de Tarefas no momento dessas travadas (CRTL+SHIFT+ESC) e veja o que está pesando no exato momento.
GOSTEI 0
Magali Faleiro
23/09/2010
Ah! Uma coisa que esqueci de mencionar e acho que pode dar pistas:
Isso acontece quando abro o programa que está no servidor de arquivos. Todos os programas ficam no mesmo lugar e as estações de trabalho acessam estes programs através de atalhos no desktop.
Quando trago o executável pra minha máquina ou mudo ele pra outra máquina qualquer que não seja o servidor de arquivos isso não acontece mais. Mas não posso deixar assim, tenho que manter os executáveis no servidor de arquivos.
Este servidor de arquivos é uma máquina com Linux Debian. Já usamos há muito tempo e nunca tive problema algum de rede com ele.
GOSTEI 0
Chadoiam
23/09/2010
Amigao nao seria melhor cada estacao ter 1 programa independente e vc compartilha apenas 1 banco de dados? isso ficaria bem + leve pq cada programa vai obedecer somente a 1 usuario da maquina, Ja vi casos que quando fazem esse tipo de acesso que vc fez 1 programa para 20 computador compartilhado via atalho da um pouco de lentidao, pois o programa tem q gerir todas as conexoes de todos os usuarios que tao acessando ele sozinho realizar todos os commit, busca e etc e dependendo do hardware da maquina isso fica tenso. Pelo que vc falo, ao testar o programa sozinho ele funciona bem, mais na hora que as pessoas acessam ele pelo atalho que aparece a lentidao correto?Pode ser algum problema nesse atalho q vc crio pode ser tambem a configuracao do servidor ou firewall que barra ou fica verificando as conexoes para esse programa ou banco ou pode ser o modo que vc fez funcionar em rede nos componente de conexao que estao com alguem pau .
Por via das duvidas se nao for dificil teste 1 programa idenpendente para cada usuario da rede, e tambem tente refazer as conexoes no seu codigo as vezes ta passando algum parametro errado, e tmabem verifique o firewall do servidor se ele nao ta muito no maximo vamos dizer assim.
Abracos...
Por via das duvidas se nao for dificil teste 1 programa idenpendente para cada usuario da rede, e tambem tente refazer as conexoes no seu codigo as vezes ta passando algum parametro errado, e tmabem verifique o firewall do servidor se ele nao ta muito no maximo vamos dizer assim.
Abracos...
GOSTEI 0
Magali Faleiro
23/09/2010
Obrigada pela atenção.
Bem, se eu colocar um executável em cada máquina, quando eu precisar atualizar o sistema (o que ocorre com bastante frequancia) eu vou ter que ir em cada umas das 30 máquinas da rede e atualizar cada uma delas. O sistema tem 10 anos e sempre foi distribuído como está hoje. Fora os arquivos auxiliares que meu sistema precisa que ficam no mesmo path do executável e que todos têm que ter igual.
E este problema só acontece em 2 máquinas, as outras 28 da rede funcionam perfeitamente e sem conflitos ente si.
GOSTEI 0
Chadoiam
23/09/2010
Hum se funciona bem nas outras maquinas, entao o problema pode ser essas 2 maquinas em questao o sistema ta normal entao , vai parecer meio besta + ja tento formatar essas 2 maquinas? Seila pode ser algum pau no sistema, tipo sabe quando dava aquele bug no win XP que o processamento ficava 100% ae as aplicacoes travava entao pode ser algo do tipo.
GOSTEI 0
Fábio Cruz
23/09/2010
A atualização já foi debatida várias vezes no forum (tanto para rede local, quanto para internet)
GOSTEI 0
Magali Faleiro
23/09/2010
Bem, então você poderia me passar o link ? Pois procurei bastante e não encontrei.
E preciso muito resolver isso.
Obrigada!
GOSTEI 0
Fábio Cruz
23/09/2010
Dá uma olhada nesse link
GOSTEI 0
Magali Faleiro
23/09/2010
Pessoal, eu sei que vocês estão sendo super atenciosos na tentativa de me ajudar com esse "mistério" e os agradeço muito por isso.
Porém, o meu problema não é de atualização de executável, nem de banco de dados.
Repetindo... às vezes, e esse é o pior, só às vezes, a minha aplicação demora para responder aos clicks do mouse nos botões. Ou a qualquer ação na tela. Pois é, eu vou lá no botão, clico e espero. Daí um tempo vejo o botão descer e subir e a aplicação começar a responder. Ou rolo uma lista, no teclado pressiono as setas pra baixo varias vezes e só depois na tela começa a responder. A resposta do BD em si não demora, só mesmo as ações na tela.
Mas isso não acontece em em todas as máquinas. Só vi acontecer em 2: 1 Windows 2000 Pro e outra Windows XP. Resumindo: eu clico no botão, no menu seja lá onde for e nada acontece. Espero um pouco, depois o botão ou menu responde. Isso já tá me irritando!
Mas isso não acontece em em todas as máquinas. Só vi acontecer em 2: 1 Windows 2000 Pro e outra Windows XP. Resumindo: eu clico no botão, no menu seja lá onde for e nada acontece. Espero um pouco, depois o botão ou menu responde. Isso já tá me irritando!
GOSTEI 0
Rodolpho Silva
23/09/2010
Bem, temos alguns fatos concretos:
Só ocorre em 2 máquinas, nas demais isso não corre - Isso me diz que a princípio o problema não está no seu aplicativo.Ocorre apenas as vezes, aleatoriamente sem algum parâmetro - Pode ter um terceiro ocasionando isso (processo do windows, por exemplo).
Agora eis algumas perguntas:O que você usa pra conectar ao banco de dados?Qual é o componente que você usa para extrair os dados? Table, Query, etc...Já verificou nos ancestrais do evento Click do botão, para ver se existe algum acesso ao BD?
Só ocorre em 2 máquinas, nas demais isso não corre - Isso me diz que a princípio o problema não está no seu aplicativo.Ocorre apenas as vezes, aleatoriamente sem algum parâmetro - Pode ter um terceiro ocasionando isso (processo do windows, por exemplo).
Agora eis algumas perguntas:O que você usa pra conectar ao banco de dados?Qual é o componente que você usa para extrair os dados? Table, Query, etc...Já verificou nos ancestrais do evento Click do botão, para ver se existe algum acesso ao BD?
GOSTEI 0