transferir do txt para um bd

10/09/2004

Bom dia.
estou com um problema e queria ver ser vcs poderiam me ajudar em mais essa...
tenho um programa que faz basicamente duas operações.. Lê de um arquivo txt e grava num banco de dados sqlserver7.0.
acontece que esse arquivo txt chega a ter 5.000 linhas..
e pelo processo que estou fazendo ele chega a demorar horas pra fazer isso..
o que estou fazendo é fazer um copy... jogar numa variável.. isso até o fim da linha
depois mando gravar...
estou utilizando o sqlserver7.0 como minha base de dados.

estou usando table e query e bde..
vi um artigo sobre o dbexpress que ficaria mais rápido..mas não sei onde o encontro dinovo...

valeu
Eric


Eric.miranda

Respostas

13/09/2004

Eric.miranda

sobe!


Responder Citar

11/10/2004

Alceste

Rapaz vc está na mesma situação em que a minha !!!!

alcestesoares@bol.com.br



Bom dia. estou com um problema e queria ver ser vcs poderiam me ajudar em mais essa... tenho um programa que faz basicamente duas operações.. Lê de um arquivo txt e grava num banco de dados sqlserver7.0. acontece que esse arquivo txt chega a ter 5.000 linhas.. e pelo processo que estou fazendo ele chega a demorar horas pra fazer isso.. o que estou fazendo é fazer um copy... jogar numa variável.. isso até o fim da linha depois mando gravar... estou utilizando o sqlserver7.0 como minha base de dados. estou usando table e query e bde.. vi um artigo sobre o dbexpress que ficaria mais rápido..mas não sei onde o encontro dinovo... valeu Eric



Responder Citar

11/10/2004

Christian_adriano

Olá Colegas,

tenta usar esse procedimento :

procedure GravarArquivoTexto(Diretorio, NomeArquivo, CampoTexto : String; Query : TDataSet);
var
Texto : TextFile;
AuxText : String;
begin
AssignFile (Texto, Diretorio + NomeArquivo);
try
Read(Texto, AuxText);
Query.FieldByName(CampoTexto).AsString :=AuxText;
Query.Post;
while not Eof(Texto) do begin
readln(Texto, AuxText);
Query.FieldByName(CampoTexto).AsString := AuxText;
Query.Post;
end;
finally
CloseFile(Texto);
end;
end;

espero ter ajudado.

[]´s.

Christian.


Responder Citar

11/10/2004

Christian_adriano

Uma Correção :

procedure GravarArquivoTexto(Diretorio, NomeArquivo, CampoTexto : String; Query : TDataSet);
var
Texto : TextFile;
AuxText : String;
begin
AssignFile (Texto, Diretorio + NomeArquivo);
try
[b:35f33b5a1c]Query.Append;[/b:35f33b5a1c]
Read(Texto, AuxText);
Query.FieldByName(CampoTexto).AsString :=AuxText;
Query.Post;
while not Eof(Texto) do begin
[b:35f33b5a1c]Query.Append;[/b:35f33b5a1c]
readln(Texto, AuxText);
Query.FieldByName(CampoTexto).AsString := AuxText;
Query.Post;
end;
finally
CloseFile(Texto);
end;
end;

[]´s.

Christian.


Responder Citar

12/10/2004

Aroldo Zanela

Bom dia. estou com um problema e queria ver ser vcs poderiam me ajudar em mais essa... tenho um programa que faz basicamente duas operações.. Lê de um arquivo txt e grava num banco de dados sqlserver7.0. acontece que esse arquivo txt chega a ter 5.000 linhas.. e pelo processo que estou fazendo ele chega a demorar horas pra fazer isso.. o que estou fazendo é fazer um copy... jogar numa variável.. isso até o fim da linha depois mando gravar... estou utilizando o sqlserver7.0 como minha base de dados. estou usando table e query e bde.. vi um artigo sobre o dbexpress que ficaria mais rápido..mas não sei onde o encontro dinovo... valeu Eric


Colega,

A melhor performance para solucionar seu problema, sem dúvida alguma, é utilizando o DTS do MSSQL que está disponível a partir da versão 7.
Por meio do Enterprise Manager, vá para Local Packages e crie um novo package, veja os componentes à esquerda (você identifica pelos nomes) e em seguida seleciona ambos (origem e destino), pressiona o botão direito e seleciona Transformation Task e efetua os ajustes. Este volume de dados o SQL deverá ´gastar´ uns 30 segundos.
Se não conseguir fazer sozinho, poste sua dúvida aqui no fórum de SQL Server que o nosso colega Marcus Magalhães poderá descrever o ´passo-a-passo´ com mais propriedade.


Responder Citar