Importação de arquivos CSV para FDB ?????

Delphi

16/12/2008

Caros Amigos, Boa Tarde !!

Sou novo na area e estou tendo muita dificuldade para fazer a importação de arquivos CSV para o meu banco de dados FDB, ja baixei um programa chamado CSV2IB, mas a principio a versão que tenho esta com um BUG para conectar ao DB.

Quanto ao ler o arquivo eu consegui chegar la, minha grande dúvida agora é de como fazer para INSERIR no DB, ele teria que verificar se o CPF ja existe ou não, se existir ele ignora se não faz a INSERÇÃO, segue abaixo o que eu consegui fazer, se alguem puder dar uma ajuda ficarei muitissimo grato.

procedure TfrmImportacao.ParseDelimited(const sl : TStrings;
const value : string; const delimiter : string);
var
dx : integer;
ns : string;
txt : string;
delta : integer;
begin
delta := Length(delimiter) ;
txt := value + delimiter;
sl.BeginUpdate;
sl.Clear;
try
while Length(txt) > 0 do
begin
dx := Pos(delimiter, txt) ;
ns := Copy(txt,0,dx-1) ;
sl.Add(ns) ;
txt := Copy(txt,dx+delta,MaxInt) ;
end;
finally
sl.EndUpdate;
end;
end;

procedure TfrmImportacao.btnImportarCSVClick(Sender: TObject);
var
arquivo, itens: string;
linhas, temp: TStringList;
i, x: integer;
begin
if OpenDialog1.Execute then
begin
arquivo := OpenDialog1.FileName;
linhas := TStringList.Create;
temp := TStringList.Create;
linhas.LoadFromFile(arquivo);
pb.Max := linhas.Count - 1;
i := 0;

for i := 0 to Pred(linhas.Count) do
begin
ParseDelimited(temp, linhas[i], ´;´);
Caption := ´Lendo Linha ´ + IntToStr(i) + ´ de ´ + IntToStr(pb.Max);
for x := 0 to Pred(temp.Count) do
begin

dm.cdsContratosID.AsInteger := temp[0];
dm.cdsContratosNOME.AsString := temp[1];
dm.cdsContratosCPF.AsString := temp[2];

end;
end;
Inc(x);
pb.Position := pb.Position + i;
Showmessage(´Registros importados com Sucesso!´);
end;
end;

Obrigado.


Badboysjc

Badboysjc

Curtidas 0

Respostas

Maikel

Maikel

16/12/2008

Talvez os códigos no link a seguir também lhe ajudem a implementar sua lógica.
http://forum.imasters.uol.com.br/index.php?showtopic=299769

Att


GOSTEI 0
POSTAR