Exportar Conteúdo do DBGrid para TXT
Caros amigos,
Alguém sabe como faço para exportar o conteúdo de um DBGrid para um arquivo TXT?
Estou usando um ClientDataSet como origem de dados, e sei que este componente possui um mecanismo que exporta para XML. Gostaria de saber se tem como fazer a mesma coisa para um TXT, ou se existe um outro componente que faça este serviço, pois hoje tenho que passar em cada registro do ClientDataSet e salvar campo por campo no TXT. Demora demais!!!
Abraço a todos,
Alguém sabe como faço para exportar o conteúdo de um DBGrid para um arquivo TXT?
Estou usando um ClientDataSet como origem de dados, e sei que este componente possui um mecanismo que exporta para XML. Gostaria de saber se tem como fazer a mesma coisa para um TXT, ou se existe um outro componente que faça este serviço, pois hoje tenho que passar em cada registro do ClientDataSet e salvar campo por campo no TXT. Demora demais!!!
Abraço a todos,
Carlosfim
Curtidas 0
Respostas
Rjun
07/10/2005
No fundo, qualquer componente que exporte para TXT irá fazer isso que você faz. Campo a campo, registro a registro. Sua tabela é muito grande? Quando tempo leva sua exportação?
GOSTEI 0
Carlosfim
07/10/2005
A quantidade de registros é variável: o cliente filtra os dados que ele precisa e depois manda imprimir. Nesta hora gero um arquivo texto e exibo na tela.
Em uma tabela com aproximadamente 3.500 registros, leva mais de um minuto para exportar pela primeira vez. Uma coisa curiosa é que depois que os dados foram exportados pela primeira vez, se pedir para exportar a mesma tabela novamente ele faz com 5 segundos.
Outra informação: Duante o processo de exportação (exporto usando o Dataset) os dados ficam ´passando´ no Grid. Tenho a impressão de que é isto que está causando o atrazo na 1ª exportação, já que nas demais vezes isto não acontece.
Como faço para que os dados não fiquem ´passando´ no Grid?
Em uma tabela com aproximadamente 3.500 registros, leva mais de um minuto para exportar pela primeira vez. Uma coisa curiosa é que depois que os dados foram exportados pela primeira vez, se pedir para exportar a mesma tabela novamente ele faz com 5 segundos.
Outra informação: Duante o processo de exportação (exporto usando o Dataset) os dados ficam ´passando´ no Grid. Tenho a impressão de que é isto que está causando o atrazo na 1ª exportação, já que nas demais vezes isto não acontece.
Como faço para que os dados não fiquem ´passando´ no Grid?
GOSTEI 0
Night_man
07/10/2005
se voce esta utilizando um clientdataset ele tem uma propriedade chamada packedrecord, normalmente ela vem com cinco... ou seja ela carrega cinco registros por vez, quando acaba esses cinco ele vai no banco de dados buscar mais.
soh q com o acumulo de registros ele comeca a ficar muito lendo, jah tive problemas com mais de 5000 registros...
para desativar o passagem de registros na tela utlizaze o metodo disablecontrols no inicio da exportacao e o enablecontros ao final. esse metodos fazem com que a animacao com a tela seja cancelada/ativada
teria algum problema salvar em xml?
soh q com o acumulo de registros ele comeca a ficar muito lendo, jah tive problemas com mais de 5000 registros...
para desativar o passagem de registros na tela utlizaze o metodo disablecontrols no inicio da exportacao e o enablecontros ao final. esse metodos fazem com que a animacao com a tela seja cancelada/ativada
teria algum problema salvar em xml?
GOSTEI 0
Rjun
07/10/2005
Poste o código da sua exportação.
GOSTEI 0
Carlosfim
07/10/2005
O problema de salvar em XML é que os dados não ficam ´apresentáveis´ se eu não utilizar um arquivo Xsl ou CSS para formatar os dados, e esta exportação é para uma posterior impressão, e não para simples armazenamento.
Mas meu problema foi resolvido: O atrazo estava realmente sendo causado pela animação na tela. Utilizei o DisableControls antes da exportação e ficou muito rápida (aproximadamente 2 segundos).
Obrigado a todos pela ajuda.
Mas meu problema foi resolvido: O atrazo estava realmente sendo causado pela animação na tela. Utilizei o DisableControls antes da exportação e ficou muito rápida (aproximadamente 2 segundos).
Obrigado a todos pela ajuda.
GOSTEI 0