Exportar Dados para TXT, Alquem por favor poderia me ajudar
Galera, eu tenho 3 tabelas em uma base de dados com um sitema rodando, e tem uma tabela que possui 26.000 linhas e alguns usuarios precisam dess tabela em Excel, hj eu exibo toda essa tabela no meu grid e exporto para excel lendo linha a linha mas isso é muito demorado, eu gostaria de saber se alguem sabe anlgun modo de fazer essa expertação ou exportar meus dados para um txt que dai fica facil para importar no excel, será que teria um select que faça isso ?
Uso Firebird 2.0 com Ibexpert
Delphi 7
Uso Firebird 2.0 com Ibexpert
Delphi 7
Cleiflavio
Curtidas 0
Respostas
Woinch
12/03/2009
Que código você está utilizando para montar o arquivo de exportação?
GOSTEI 0
Vitor Alcantara
12/03/2009
Via TextFile
Via StringList;
var f: TextFile; begin AssignFile(f,´Nome do seu arquivo.txt´); Rewrite(f); Write(f,´Insere no arquivo e continua na mesma linha. ´); WriteLn(f,´Começa na mesma linha e pula para próxima.´); CloseFile(f); end;
Via StringList;
Var lst : TStrings; begin Try Lst := TStringList.Create; Lst.Add(´Linha1); Lst.Add(´Linha2´); Lst.SaveToFile(´Nome do seu arquivo.txt´); Finally Lst.Free; end; end;
GOSTEI 0
Cleiflavio
12/03/2009
deixa eu explicar melhor.
Eu tenho que exportar todos meus dados da minha tabela de banco de dados para um txt.
eu tenho uma tabela com 26.000 linhas e não posso ler linha a linha tem que haver um jeito de eu Selecionar a tabela e exportar toda ela para um txt. é isso que eu quero fazer. precisava que isso seria feito pelo Delphi, atraves de um codigo.
Alguem sabe como fazer isso ????
Estou usando Firebird e Ibexpert
Eu tenho que exportar todos meus dados da minha tabela de banco de dados para um txt.
eu tenho uma tabela com 26.000 linhas e não posso ler linha a linha tem que haver um jeito de eu Selecionar a tabela e exportar toda ela para um txt. é isso que eu quero fazer. precisava que isso seria feito pelo Delphi, atraves de um codigo.
Alguem sabe como fazer isso ????
Estou usando Firebird e Ibexpert
GOSTEI 0
Woinch
12/03/2009
Desconheço uma maneira de fazer esse processo tão grande de uma maneira que não seja tão demorada, mas você pode tentar otimizá-lo ao máximo. Experimente trazer o resultado do select já concatenado com ´;´ exemplo:
Após isso, varra todo o resultado e utilize o comando Writeln para gravar direto no arquivo texto sem alocar nada na memória. Se não for rápido o sufuciente, faça um teste também com StringList e para salvar utilize o comando SaveToFile.
Quando tiver terminado se mesmo assim ficar demorado poste o código aqui para que possamos ajudar. Se funcionar, poste também! :D
Espero ter ajudado.
select CAMPO1 || ´;´ || CAMPO2 || ´;´ from TABELA
Após isso, varra todo o resultado e utilize o comando Writeln para gravar direto no arquivo texto sem alocar nada na memória. Se não for rápido o sufuciente, faça um teste também com StringList e para salvar utilize o comando SaveToFile.
Quando tiver terminado se mesmo assim ficar demorado poste o código aqui para que possamos ajudar. Se funcionar, poste também! :D
Espero ter ajudado.
GOSTEI 0
Vitor Alcantara
12/03/2009
Tem um caso que estou desenvolvendo um PDV que funciona OFF-line e atualiza os dados de tempos em tempos, tanto atualizando os dados do cadastro do servidor como envia as vendas. Estava pensando em utilizar a importação via TXT. Mais desisti e resolvi utilizar a opção save to file do ClientDataSet no modo padrão que é o binário. Cara ficou muito rápido tanto na escrita como na leitura. Será que isso não se encaixaria no seu caso.
GOSTEI 0
Helio Nascimento
12/03/2009
[b:2fac90c314]Vitor Araujo Alcantara[/b:2fac90c314]
Cara estou desenvolvendo algo para uma representação que também será vendas of-line e a noite conecta e descarrega. Voce poderia me passar algo de como voce está implementando. Se quizer me dar mais detalhes via msn pode me adicionar helionas@hotmail.com
Obrigado
Cara estou desenvolvendo algo para uma representação que também será vendas of-line e a noite conecta e descarrega. Voce poderia me passar algo de como voce está implementando. Se quizer me dar mais detalhes via msn pode me adicionar helionas@hotmail.com
Obrigado
GOSTEI 0
Cleiflavio
12/03/2009
Woinch
Estou tentando usar a sua, está indo bem mas está trazendo toda a informação em uma unica linha.
Será que teria como vc me passar um select que acertasse isso.
EX:
No select que vc passou = select CAMPO1 || ´;´ || CAMPO2 || ´;´ from TABELA
CONCATENAR ID NOME ENDERECO CIDADE RAFAEL RUA 2 SP ANDERSON RUA 3 RJ
Entedeu isso é só um exemplo está vindo em uma unica linha toda minha informação.
Eu preciso que venha assim :
NOME CIDADE ENDERECO
RAFAEL SP RUA 2
ANDERSON RJ RUA 3
Teria como fazer um selec assim ?
Agradeço se me ajudarem.
Estou tentando usar a sua, está indo bem mas está trazendo toda a informação em uma unica linha.
Será que teria como vc me passar um select que acertasse isso.
EX:
No select que vc passou = select CAMPO1 || ´;´ || CAMPO2 || ´;´ from TABELA
CONCATENAR ID NOME ENDERECO CIDADE RAFAEL RUA 2 SP ANDERSON RUA 3 RJ
Entedeu isso é só um exemplo está vindo em uma unica linha toda minha informação.
Eu preciso que venha assim :
NOME CIDADE ENDERECO
RAFAEL SP RUA 2
ANDERSON RJ RUA 3
Teria como fazer um selec assim ?
Agradeço se me ajudarem.
GOSTEI 0
Woinch
12/03/2009
Mas dessa maneira que lhe passei o select já está vindo assim. Só que ele vai trazer o resultado em diversas linhas. Portanto você precisará fazer um loop para gravar o resultado no arquivo texto. Veja:
Irá retornar como você mostrou.
PS: Sugiro utilizar um delimitador como ´;´ ou ´|´.
Execute esse select em algum gerenciador de banco de dados para você ver como irá retornar. Agora caso o que você queira fazer seja mostrar em diversas linhas a mesma linha de resultado do select basta usar o caractere do ´enter´. Veja:
Irá retornar:
select NOME || ´ ´ || CIDADE || ´ ´ || ENDERECO from TABELA
Irá retornar como você mostrou.
PS: Sugiro utilizar um delimitador como ´;´ ou ´|´.
Execute esse select em algum gerenciador de banco de dados para você ver como irá retornar. Agora caso o que você queira fazer seja mostrar em diversas linhas a mesma linha de resultado do select basta usar o caractere do ´enter´. Veja:
select NOME || ´#1310´ || CIDADE || ´1310´ || ENDERECO from TABELA
Irá retornar:
RAFAEL
SP
RUA 2
ANDERSON
RJ
RUA 3
GOSTEI 0