transferir do txt para um bd
10/09/2004
0
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
Posts
11/10/2004
Alceste
alcestesoares@bol.com.br
11/10/2004
Christian_adriano
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.
11/10/2004
Christian_adriano
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.
12/10/2004
Aroldo Zanela
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.
Clique aqui para fazer login e interagir na Comunidade :)