Reinaldo, Acho que vc poderia COMMITAR a cada 100 arquivos importados. Acho q eh esse o problema... estouro de transacao!
Obrigado MuriloCunha On 30/04/2010 10:26, Reinaldo Aparecido Pereira wrote: > Amigos, > > Não entendo de gerenciamento de memória e o que tenho lido não resolveu meu > problema. Estou com a rotina abaixo que importa o conteúdo de 1000 arquivos > para um banco Firebird. Lá pelo arquivo 600 a aplicação trava e dá OUT OFF > MEMORY. O executável é muito pequeno e acompanhando o processo não parece > ocupar quase nada de memória. > > O que acontece afinal? > > Como posso resolver isso? > > Grato.. > > > > > > for i := 0 to Arquivos.Count - 1 do > > begin > > ProgressBar1.Position := i; > > Arquivos.ItemIndex := i; > > stlArquivo.Clear; > > stlArquivo.LoadFromFile(Arquivos.Items[Arquivos.ItemIndex]); > > for x := 0 to stlArquivo.Count - 1 do > > begin > > //tblArtigos.Active := true; > > tblArtigos.Append; > > tblArtigos.FieldByName('ANO').Text := cbAno.Text; > > tblArtigos.FieldByName('NUM_LINHA').Value := x; > > tblArtigos.FieldByName('PK_ARQUIVO').Text := > Trim(Arquivos.Items[Arquivos.ItemIndex]); > > tblArtigos.FieldByName('LINHA').Text := > Copy(Trim(stlArquivo[x]), 0, 999); > > tblArtigos.Post; > > end; > > end; > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > ------------------------------------ > >