Fórum Exportar Dados para TXT, Alquem por favor poderia me ajudar #368995

12/03/2009

0

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


Cleiflavio

Cleiflavio

Responder

Posts

12/03/2009

Woinch

Que código você está utilizando para montar o arquivo de exportação?


Responder

Gostei + 0

12/03/2009

Vitor Alcantara

Via TextFile

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;



Responder

Gostei + 0

13/03/2009

Cleiflavio

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


Responder

Gostei + 0

13/03/2009

Woinch

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:

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.


Responder

Gostei + 0

14/03/2009

Vitor Alcantara

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.


Responder

Gostei + 0

14/03/2009

Helio Nascimento

[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


Responder

Gostei + 0

19/03/2009

Cleiflavio

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.


Responder

Gostei + 0

19/03/2009

Woinch

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:

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



Responder

Gostei + 0

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

Aceitar