BDE... Argh!

Qual a chance de trocar por um SGDB de verdade?
Sugestão rápida: Firebird.
Aí, vc teria muito mais recursos e eficiência no trato aos dados.

2008/4/30 Sandro <[EMAIL PROTECTED]>:
>
> 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.)


-- 
Timeo hominem unius libri
Cogito ergo sum - Carpe diem

[]s
Guionardo Furlan
http://guionardo.blogspot.com

Responder a