uso de memoria muito alto em tabela gigante

24/01/2006

0

seguinte galera... tenho uma tabela com uns 2000 registros .. dependendo ateh mais....

e preciso tratar uns campos .. ex substituir as virgulas por espaço, deixar tudo em minusculo, tira acento das palavras e talz ...
isso rola normal com poucos registros mas qndo sao mtos... ixi.. quase q impossivel...

os campos sao todos do tipo MEMO ... e cada campo tem +/- uns 1300 caracteres :)

soh q qndo mando rodar esse comando... o computador fica EXTREMAMENTE LENTO ... o consumo de memoria vai la encima...
e depois de muito tempo da out of memory pra executar a função...

alguem sabe oq posso fazer pra agilizar esse processo... e fazer com q isso funcione melhor?

obrigado :P


    for i:= 0 to TempTable.RecordCount-1 do begin
      TempTable.Edit;
      {substitui a virgula por espaço}
      x := ReplaceStr(TempTable.FieldByName(edit6.Text).AsString,´,´,´ ´);
      {remove os acentos das palavras e poe tudo minusculo}
      x := Lowercase(AnsiToAscii(x));
      {insere nos registros as palavras tratadas}
      TempTable.FieldByName(edit6.Text).AsString := x;
      TempTable.Post;
      TempTable.Next;
    end;



Salsa

Salsa

Responder

Posts

24/01/2006

Aroldo Zanela

Colega,

O primeiro passo é substituir o FOR por um laço WHILE, pois da forma que você codificou, a cada iteração do laço o sistema tem de obter a quantidade de registro. Isto é totalmente desnecessário e degradante.
Qual é o banco de dados?
A propósito, são 2000 ou 2000000 de registros?


Responder

25/01/2006

Salsa

eu troquei por...

TempTable.First;
while TempTable.Eof do begin


mas ele nao percorre os registros pq?


Responder

25/01/2006

Salsa

desculpe eskeci q era while not hehee
entao ... ele vai percorrendo... qndo chega nos 50¬ dos registros... ele da falta de memoria....

tudo bem q ele tah fazendo varias coisas ali na funçao mas meu tah usando mto memoria.. nao tem como livrar essa memoria nao...???


*o banco q to usando eh o access


Responder

25/01/2006

Aroldo Zanela

Colega,

Tem como mandar uma cópia do banco para testar aqui? (zanela_zanela@yahoo.com.br)


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar