Importar Texto para Banco de Dados

Delphi

16/09/2005

Galera trabalho com Delphi7/Firebird(IBExpert)

Preciso importar dados de arquivos Texto para um Banco de dados
os arquivos texto chega a ter 20.000 até 30.000 registros

qual seria a melhor solução com melhor performace pra isso ??

Se alguem puder me dar uma sugestão eu agradeço muito !!!


Fabiano Góes

Fabiano Góes

Curtidas 0

Respostas

Mahdak

Mahdak

16/09/2005

[quote:f4516aaa84=´Fabiano Góes´]Galera trabalho com Delphi7/Firebird(IBExpert)

Preciso importar dados de arquivos Texto para um Banco de dados
os arquivos texto chega a ter 20.000 até 30.000 registros

qual seria a melhor solução com melhor performace pra isso ??

Se alguem puder me dar uma sugestão eu agradeço muito !!![/quote:f4516aaa84]

Fabiano... tente o seguinte:

Como importar dados de um arquivo texto para uma Tabela
var
sArquivo: TextFile;
Entrada, sArq2: string;
iLinha: integer;
begin
tblCep.Open;
tblCepLoc.Open;
bCancelaImport := False;
AssignFile(sArquivo, FileNameEdit1.FileName);
sArq2 := After(´Cep_Loc.txt´,FileNameEdit1.FileName);
 
iLinha := 0;
if FileNameEdit1.FileName = ´C:\Download\Ceps\Cep_loc.txt´ then begin
// Arquivo de Localidades
RzProgressBar1.TotalParts := 0;
RzProgressBar1.TotalParts := NumLinhasArq(FileNameEdit1.FileName);
 
Reset(sArquivo);
Readln(sArquivo,Entrada);
while not Eoln(sArquivo) do begin
Inc(iLinha);
Readln(sArquivo,Entrada);
 
// 0 = Base Total e 2 = Inclusao
if (copy(Entrada,90,1) = ´0´) or (copy(Entrada,90,1) = ´2´) then
begin
tblCepLoc.Append;
tblCepLoc.FieldByName(´cep_ChvLocal´).AsString :=
copy(Entrada,1,6);
tblCepLoc.FieldByName(´cep_Cidade´).AsString :=
copy(Entrada,7,60);
tblCepLoc.FieldByName(´cep_UF´).AsString := copy(Entrada,75,2);
try
tblCepLoc.Post;
except
tblCepLoc.Cancel;
end;
end
else if (copy(Entrada,90,1) = ´1´) then begin // Exclusao
if tblCepLoc.Locate(´cep_ChvLocal´, copy(Entrada,1,6),
[loPartialKey]) then
tblCepLoc.Delete;
end
else if (copy(Entrada,90,1) = ´3´) then begin // Alteracao
if tblCepLoc.Locate(´cep_ChvLocal´, copy(Entrada,1,6),
[loPartialKey])
then begin
tblCepLoc.Edit;
tblCepLoc.FieldByName(´cep_Cidade´).AsString :=
copy(Entrada,7,60);
tblCepLoc.FieldByName(´cep_UF´).AsString :=
copy(Entrada,75,2);
end;
try
tblCepLoc.Post;
except
tblCepLoc.Cancel;
end;
end;
RzProgressBar1.PartsComplete := iLinha;
Application.ProcessMessages;
if bCancelaImport then
Break;
end;
CloseFile(sArquivo);
end; 


Fonte: Dicas e truques delphi


GOSTEI 0
POSTAR