Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-19 Por tôpico Valdemir (yahoo)
Exatamente isso que eu estou fazendo agora... mudando para gravar em um banco.. 
estou estudando as possiblidades.. mas estou inclinado a usar o sqlite


From: Roni Rodrigo 
Sent: Saturday, July 17, 2010 3:11 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Re: [delphi-br] ClientDataSet - Out Of Memory


  
me metendo na conversa esse seu framework não poderia manipular um 
TDataSet ou um _RecordSet ao invés do cds?
ai vc faria a consulta normalmente como o Fabiano falou... e já passaria 
o dataset ou recordset da consulta, independente do componente que 
estiver utilizando (cds, qry, procedure... ) sem necessidade de 
armazenar esses dados duplicados na memória...
o/

Em 16/07/2010 23:44, Valdemir (yahoo) escreveu:
 na verdade .. montei um framework para gerar arquivos do governo... 
 ele gera tanto arquivos de posição fixa (como o Sintegra), como 
 arquivos separados com pipe (sped), entre outras funções ele visualiza 
 os arquivos TXT como o Sintegra faz com o arquivo dele

 neste framework eu cadastro o layout, ou seja os registros, e cada 
 campo com tamanho e tipo de arquivo... e eu ao gerar o txt, ele já faz 
 algumas conferencias de acordo com o layout

 No sped, vc tem alguns registros Ex...I030 , que tem um campo com o 
 total de registros do I030 que tem a quantidade de linhas do arquivo, 
 ou seja logo no inicio do arquivo ele já me pede o total de linhas, 
 neste caso eu tenho duas opções ou antes de gerar esta linha simulo 
 a geração para saber o total de linhas, ou então arrumo um jeito de 
 editar a linha apos eu gerar o arquivo inteiro.

 Entre gerar o arquivo e abrir o texto procurando por registro/posição 
 no arquivo txt e ai substituir, eu preferi gravar tudo em cds e 
 manipular o cds alterando o que é necessário

 From: Fabiano Moura
 Sent: Friday, July 16, 2010 10:49 PM
 To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Subject: Re: [delphi-br] ClientDataSet - Out Of Memory

 *Boa noite!*

 Valdemir, por que você pega os dados da tabela e gera no clientdataset,
 não é mais fácil você pegar (restaurar) os dados do banco e jogar 
 direto no
 arquivo texto?

 *Obrigado,*
 **
 *Fabiano*

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-18 Por tôpico Roni Rodrigo
me metendo na conversa esse seu framework não poderia manipular um 
TDataSet ou um _RecordSet ao invés do cds?
ai vc faria a consulta normalmente como o Fabiano falou... e já passaria 
o dataset ou recordset da consulta, independente do componente que 
estiver utilizando (cds, qry, procedure... ) sem necessidade de 
armazenar esses dados duplicados na memória...
o/

Em 16/07/2010 23:44, Valdemir (yahoo) escreveu:
 na verdade .. montei um framework para gerar arquivos do governo... 
 ele gera tanto arquivos de posição fixa (como o Sintegra), como 
 arquivos separados com pipe (sped), entre outras funções ele visualiza 
 os arquivos TXT como o Sintegra faz com o arquivo dele

 neste framework eu cadastro o layout, ou seja os registros, e cada 
 campo com tamanho e tipo de arquivo... e eu ao gerar o txt, ele já faz 
 algumas conferencias de acordo com o layout

 No sped, vc tem alguns registros Ex...I030 , que tem um campo com o 
 total de registros do I030 que tem a quantidade de linhas do arquivo, 
 ou seja logo no inicio do arquivo ele já me pede o total de linhas, 
 neste caso eu tenho duas opções ou antes de gerar esta linha simulo 
 a geração para saber o total de linhas, ou então arrumo um jeito de 
 editar a linha apos eu gerar o arquivo inteiro.

 Entre gerar o arquivo e abrir o texto procurando por registro/posição 
 no arquivo txt e ai substituir, eu preferi gravar tudo em cds e 
 manipular o cds alterando o que é necessário

 From: Fabiano Moura
 Sent: Friday, July 16, 2010 10:49 PM
 To: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Subject: Re: [delphi-br] ClientDataSet - Out Of Memory

 *Boa noite!*

 Valdemir, por que você pega os dados da tabela e gera no clientdataset,
 não é mais fácil você pegar (restaurar) os dados do banco e jogar 
 direto no
 arquivo texto?

 *Obrigado,*
 **
 *Fabiano*



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-16 Por tôpico Valdemir (yahoo)
delphi 2010, sped contabil... com mais ou menos 400 mil lançamentos no ano de 
2009


From: Jean Barreiros 
Sent: Friday, July 16, 2010 1:23 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Res: [delphi-br] ClientDataSet - Out Of Memory


  
Olá amigo qual versão do delphi você tá usando
e qual SPED você star gerando o txt, Fiscal ou Contabil?
===
Jean Barreiros
Programador/Web-Designer
Delphi|C++|PHP|JavaScript
FireBird|MySql|SQLServer
PostGree|Oracle
msn: delphij...@gmail.com
e-mail: delphij...@yahoo.com.br
===


De: Valdemir (yahoo) valdemi...@yahoo.com.br
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quinta-feira, 15 de Julho de 2010 18:08:49
Assunto: [delphi-br] ClientDataSet - Out Of Memory

Pessoal estou montando uma rotina para gerar o sped, em um movimento pequeno ok 
a rotina roda legal, mas em um movimento grande ao dar insert no CDS da erro 
Out 
Of Memory, apos processar um grande numero de registros

Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e 
jogar 
no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro leio as 
tabelas e jogo no CDS, ai no CDS já com os dados no formato do governo, faço um 
loop no cds e gravo para o txt

A principio estava usando um CDS em memoria, e ai é logico que deu o erro, mas 
ao preencher a propriedade FileName com o nome do arquivo ... ele começou a 
gerar os dados em arquivo binário, até ai ok, mas não encontrei nenhuma 
propriedade que eu informo que ele descarregue da memoria ram a cada x 
registros, então mesmo informado a propriedade nome do arquivo .. ele cria um 
arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of memory, 
e 
ai o tamanho do arquivo salta de 0 para um numero em bytes que ele conseguiu 
gerar

Da a entender que mesmo informando o FileName, ele continua trabalhando somente 
com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei que como 
esta informado o nome do arquivo, ele automaticamente ao carregar a RAM iria 
salvar os dados em disco, procurei no help mas não encontrei nenhum método ou 
propriedade para isso, antigamente no bde existia uma api para isso, mas no 
ClientDataSet eu não encontrei

Alguém faz idéia do que possa estar ocorrendo ?

Obrigado
Valdemir

[As partes desta mensagem que não continham texto foram removidas]

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-16 Por tôpico Fabiano Moura
*Boa noite!*

  Valdemir, por que você pega os dados da tabela e gera no clientdataset,
não é mais fácil você pegar (restaurar) os dados do banco e jogar direto no
arquivo texto?



*Obrigado,*
**
*Fabiano*

Em 16 de julho de 2010 22:31, Valdemir (yahoo)
valdemi...@yahoo.com.brescreveu:

 delphi 2010, sped contabil... com mais ou menos 400 mil lançamentos no ano
 de 2009


 From: Jean Barreiros
 Sent: Friday, July 16, 2010 1:23 PM
 To: delphi-br@yahoogrupos.com.br
 Subject: Res: [delphi-br] ClientDataSet - Out Of Memory



 Olá amigo qual versão do delphi você tá usando
 e qual SPED você star gerando o txt, Fiscal ou Contabil?
 ===
 Jean Barreiros
 Programador/Web-Designer
 Delphi|C++|PHP|JavaScript
 FireBird|MySql|SQLServer
 PostGree|Oracle
 msn: delphij...@gmail.com
 e-mail: delphij...@yahoo.com.br
 ===

 
 De: Valdemir (yahoo) valdemi...@yahoo.com.br
 Para: delphi-br@yahoogrupos.com.br
 Enviadas: Quinta-feira, 15 de Julho de 2010 18:08:49
 Assunto: [delphi-br] ClientDataSet - Out Of Memory

 Pessoal estou montando uma rotina para gerar o sped, em um movimento
 pequeno ok
 a rotina roda legal, mas em um movimento grande ao dar insert no CDS da
 erro Out
 Of Memory, apos processar um grande numero de registros

 Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e
 jogar
 no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro leio as
 tabelas e jogo no CDS, ai no CDS já com os dados no formato do governo,
 faço um
 loop no cds e gravo para o txt

 A principio estava usando um CDS em memoria, e ai é logico que deu o erro,
 mas
 ao preencher a propriedade FileName com o nome do arquivo ... ele começou a
 gerar os dados em arquivo binário, até ai ok, mas não encontrei nenhuma
 propriedade que eu informo que ele descarregue da memoria ram a cada x
 registros, então mesmo informado a propriedade nome do arquivo .. ele cria
 um
 arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of
 memory, e
 ai o tamanho do arquivo salta de 0 para um numero em bytes que ele
 conseguiu
 gerar

 Da a entender que mesmo informando o FileName, ele continua trabalhando
 somente
 com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei que
 como
 esta informado o nome do arquivo, ele automaticamente ao carregar a RAM
 iria
 salvar os dados em disco, procurei no help mas não encontrei nenhum método
 ou
 propriedade para isso, antigamente no bde existia uma api para isso, mas no
 ClientDataSet eu não encontrei

 Alguém faz idéia do que possa estar ocorrendo ?

 Obrigado
 Valdemir

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]





 [As partes desta mensagem que não continham texto foram removidas]



 

 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 






[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-16 Por tôpico Valdemir (yahoo)
na verdade .. montei um framework para gerar arquivos do governo... ele gera 
tanto arquivos de posição fixa (como o Sintegra), como arquivos separados com 
pipe (sped), entre outras funções ele visualiza os arquivos TXT como o Sintegra 
faz com o arquivo dele

neste framework eu cadastro o layout, ou seja os registros, e cada campo com 
tamanho e tipo de arquivo... e eu ao gerar o txt, ele já faz algumas 
conferencias de acordo com o layout

No sped, vc tem alguns registros Ex...I030 , que tem um campo com o total de 
registros do I030 que tem a quantidade de linhas do arquivo, ou seja logo no 
inicio do arquivo ele já me pede o total de linhas, neste caso eu tenho duas 
opções ou antes de gerar esta linha simulo a geração para saber o total de 
linhas, ou então arrumo um jeito de editar a linha apos eu gerar o arquivo 
inteiro.

Entre gerar o arquivo e abrir o texto procurando por registro/posição no 
arquivo txt e ai substituir, eu preferi gravar tudo em cds e manipular o cds 
alterando o que é necessário


From: Fabiano Moura 
Sent: Friday, July 16, 2010 10:49 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Re: [delphi-br] ClientDataSet - Out Of Memory


  
*Boa noite!*

Valdemir, por que você pega os dados da tabela e gera no clientdataset,
não é mais fácil você pegar (restaurar) os dados do banco e jogar direto no
arquivo texto?

*Obrigado,*
**
*Fabiano*

Em 16 de julho de 2010 22:31, Valdemir (yahoo)
valdemi...@yahoo.com.brescreveu:

 delphi 2010, sped contabil... com mais ou menos 400 mil lançamentos no ano
 de 2009


 From: Jean Barreiros
 Sent: Friday, July 16, 2010 1:23 PM
 To: delphi-br@yahoogrupos.com.br
 Subject: Res: [delphi-br] ClientDataSet - Out Of Memory



 Olá amigo qual versão do delphi você tá usando
 e qual SPED você star gerando o txt, Fiscal ou Contabil?
 ===
 Jean Barreiros
 Programador/Web-Designer
 Delphi|C++|PHP|JavaScript
 FireBird|MySql|SQLServer
 PostGree|Oracle
 msn: delphij...@gmail.com
 e-mail: delphij...@yahoo.com.br
 ===

 
 De: Valdemir (yahoo) valdemi...@yahoo.com.br
 Para: delphi-br@yahoogrupos.com.br
 Enviadas: Quinta-feira, 15 de Julho de 2010 18:08:49
 Assunto: [delphi-br] ClientDataSet - Out Of Memory

 Pessoal estou montando uma rotina para gerar o sped, em um movimento
 pequeno ok
 a rotina roda legal, mas em um movimento grande ao dar insert no CDS da
 erro Out
 Of Memory, apos processar um grande numero de registros

 Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e
 jogar
 no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro leio as
 tabelas e jogo no CDS, ai no CDS já com os dados no formato do governo,
 faço um
 loop no cds e gravo para o txt

 A principio estava usando um CDS em memoria, e ai é logico que deu o erro,
 mas
 ao preencher a propriedade FileName com o nome do arquivo ... ele começou a
 gerar os dados em arquivo binário, até ai ok, mas não encontrei nenhuma
 propriedade que eu informo que ele descarregue da memoria ram a cada x
 registros, então mesmo informado a propriedade nome do arquivo .. ele cria
 um
 arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of
 memory, e
 ai o tamanho do arquivo salta de 0 para um numero em bytes que ele
 conseguiu
 gerar

 Da a entender que mesmo informando o FileName, ele continua trabalhando
 somente
 com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei que
 como
 esta informado o nome do arquivo, ele automaticamente ao carregar a RAM
 iria
 salvar os dados em disco, procurei no help mas não encontrei nenhum método
 ou
 propriedade para isso, antigamente no bde existia uma api para isso, mas no
 ClientDataSet eu não encontrei

 Alguém faz idéia do que possa estar ocorrendo ?

 Obrigado
 Valdemir

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]





 [As partes desta mensagem que não continham texto foram removidas]



 

 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-15 Por tôpico Fabricio Colombo
Eu já tive problemas utilizando TClientDataSet em memória parecido com isso
devido a grande quantidade de registros, sem falar no desempenho deplorável.
Agora utilizo um componente da devart chamado VirtualTable que vem junto com
o ODAC da devart,  mais é pago. Se não me engano, o JEDI VCl tem um
componente chamado TJvMemoryTable, nunca usei, mais acredito ser mais
otimizado.

Em 15 de julho de 2010 18:08, Valdemir (yahoo)
valdemi...@yahoo.com.brescreveu:



 Pessoal estou montando uma rotina para gerar o sped, em um movimento
 pequeno ok a rotina roda legal, mas em um movimento grande ao dar insert no
 CDS da erro Out Of Memory, apos processar um grande numero de registros

 Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e
 jogar no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro
 leio as tabelas e jogo no CDS, ai no CDS já com os dados no formato do
 governo, faço um loop no cds e gravo para o txt

 A principio estava usando um CDS em memoria, e ai é logico que deu o erro,
 mas ao preencher a propriedade FileName com o nome do arquivo ... ele
 começou a gerar os dados em arquivo binário, até ai ok, mas não encontrei
 nenhuma propriedade que eu informo que ele descarregue da memoria ram a cada
 x registros, então mesmo informado a propriedade nome do arquivo .. ele cria
 um arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of
 memory, e ai o tamanho do arquivo salta de 0 para um numero em bytes que ele
 conseguiu gerar

 Da a entender que mesmo informando o FileName, ele continua trabalhando
 somente com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei
 que como esta informado o nome do arquivo, ele automaticamente ao carregar a
 RAM iria salvar os dados em disco, procurei no help mas não encontrei nenhum
 método ou propriedade para isso, antigamente no bde existia uma api para
 isso, mas no ClientDataSet eu não encontrei

 Alguém faz idéia do que possa estar ocorrendo ?

 Obrigado
 Valdemir

 [As partes desta mensagem que não continham texto foram removidas]

  



[As partes desta mensagem que não continham texto foram removidas]





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
delphi-br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [delphi-br] ClientDataSet - Out Of Memory

2010-07-15 Por tôpico Dirlei Dionísio
Valdemir, se você prefere jogar os dados num ClientDataset para depois
passar para um TXT, não precisa acumular todos os dados no
ClientDataset para só no final gravar no TXT. Faça isso registro a
registro, assim você só manterá em memória um registro por vez.


--
Dirlei Dionísio
http://MaisQueBomCodigo.blogspot.com



Em 15 de julho de 2010 18:19, Fabricio Colombo
fabricio.colombo@gmail.com escreveu:
 Eu já tive problemas utilizando TClientDataSet em memória parecido com isso
 devido a grande quantidade de registros, sem falar no desempenho deplorável.
 Agora utilizo um componente da devart chamado VirtualTable que vem junto com
 o ODAC da devart,  mais é pago. Se não me engano, o JEDI VCl tem um
 componente chamado TJvMemoryTable, nunca usei, mais acredito ser mais
 otimizado.

 Em 15 de julho de 2010 18:08, Valdemir (yahoo)
 valdemi...@yahoo.com.brescreveu:



 Pessoal estou montando uma rotina para gerar o sped, em um movimento
 pequeno ok a rotina roda legal, mas em um movimento grande ao dar insert no
 CDS da erro Out Of Memory, apos processar um grande numero de registros

 Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e
 jogar no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro
 leio as tabelas e jogo no CDS, ai no CDS já com os dados no formato do
 governo, faço um loop no cds e gravo para o txt

 A principio estava usando um CDS em memoria, e ai é logico que deu o erro,
 mas ao preencher a propriedade FileName com o nome do arquivo ... ele
 começou a gerar os dados em arquivo binário, até ai ok, mas não encontrei
 nenhuma propriedade que eu informo que ele descarregue da memoria ram a cada
 x registros, então mesmo informado a propriedade nome do arquivo .. ele cria
 um arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of
 memory, e ai o tamanho do arquivo salta de 0 para um numero em bytes que ele
 conseguiu gerar

 Da a entender que mesmo informando o FileName, ele continua trabalhando
 somente com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei
 que como esta informado o nome do arquivo, ele automaticamente ao carregar a
 RAM iria salvar os dados em disco, procurei no help mas não encontrei nenhum
 método ou propriedade para isso, antigamente no bde existia uma api para
 isso, mas no ClientDataSet eu não encontrei

 Alguém faz idéia do que possa estar ocorrendo ?

 Obrigado
 Valdemir

 [As partes desta mensagem que não continham texto foram removidas]





 [As partes desta mensagem que não continham texto foram removidas]



 

 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM