Bom dia! Peguei um sistema ja pronto com o seguinte problema, o programador anterior implementou os modulos de contas a receber e pagar utilizando uma tela de entrada onde o usuário escolhe se quer visualizar contas baixadas, em aberto, por periodo, por valor por cliente todos os tipos de possibilidades possíveis para o usuário visualizar o lançamento da maneira que ele desejar. Mas a questão é que isso foi implemetado utilizando-se de filtro (BD PARADOX)depois de ecolher o lançameto que ele quer visualizar o mesmo clica em visualizar e o sistema implementa o filtro necessário àquela pesquisa e abre o formulario principal. São duas tabelas, uma receber onde constam os lançamentos e outra Ireceber onde o usuário formaliza a baixa sendo que esta ireceber é uma DETAIL da receber. O que ocorre é que a uns tempos atras o sistema TODO ao abrir, estava implementado para abrir todas as tabelas deste cerca de 300 tabelas abertas ao mesmo tempo (em uma rede de 10 maquinas com um servidor dedicado ao BD) o que começou a me causar problemas de falta de memória na maioria dos computadores (Todos minimo celeron 1.1 com 512 rede 10/100 com swith). Durante este tempo em que todas as tab. eram abertas ao mesmo tempo os modulos receber e pagar deste sistema por incrivel que pareça funcionavam muito bem. Quando digo muito bem quero dizer que quando o usuário baixava um determinado lançamento esta baixa era quase instantanea. Mas eu tive que resolver o problema de falata de memoria. E fiz da seguinte forma simplesmente acabei com as funçoes que abriam todas as tabelas ao entrar no sistema e agora só abro as mesmas quando necessito (on Demanda) ou seja quando estou com o modulo receber aberto só estou com as tabelas necessárias àquele modulo aberta, quando antes estavam todas as tab. do sistema abertas. O sistema todo ficou muito mais leve, o problema de falta de memoria foi resolvido. Mas para o meu espanto tanto o modulo de receber (só baixa) quanto pagar (só baixa) ficaram extremamente lentos cerca de 5m para realizarem uma baixa. Intervi novamente da seguinte forma verifiquei nas duas tabelas do sistema receber quais eventos eram estartados desde o momentos em que as tabelas são abertas até o momento em que elas são fechadas ( o formulario de receber é composto por dois grids um para mostrar os dados da tab receberr e outro para a tab. ireceber.) fiz o seguinte removi todos os eventos (on insert, on after insert, onedit, Before post, after post) ao inves de fazer as baixas direto dentro da grid da tab ireceber, inseri campos edit, dateedit, enfim todoas os campos da grid ireceber eu inseri campos identicos logo abaixo da grid e passei a mesma para read only ou seja a baixa que era feita na grid agora é feita em componetes tEdit e os eventos que eram estartados na tab ireceber eu inseri em um botão, nomeado de efetuar baixa, que contem todos os processos de verificação utilizados nos eventos citados acima da tab. Ireceber. O sistema melhorou muito quando efetuei a primeira baixa depois de implemetado isso tudo. Porem esta ocorrendo o seguinte se faço mais que cinco baixas direto sem fechar o sistema ele volta a ficar lento como antes. (Normalmento processamos a cada entrada neste modulos cerca de 20 a 25 baixas. Qual seria a solução definitiva e viavel para essa situação. (A lentidão se da na hora do sistema baixar o lançamento e dar o feedback para o usuario na grid ou seja dar o refresh na tab receber e remover aquele registo do filtro utilizado na consulta.)
Conto com a ajuda de voces. Grande Abraço a todos. Sandro Cardoso [As partes desta mensagem que não continham texto foram removidas]