CSV/TXT to FDB

12/08/2008

1

Boa Noite !!

Ja procurei aqui no Forum sobre importação de dados de arquivos CSV para GDB/FDB, mas não encotrei exatamente o que eu precisava, com excessão do programa CSV2IB. Eu tinha uma versão dele antiga que funcionava bem, que vinha com o arquivo INI junto, mas esta versão que estou achando na net esta gerendo erros. Dai fiz uma rotina para importação. Para visualizar no LISTBOX esta tranquilo, mas NÃO estou sabendo fazer para manda-la para o DB. Eu sei que tenho que verificar se o registro ja existe, se exister preciso ignora-lo se não existir preciso fazer a inserção.

Se o que tenho que fazer, mas não sei como, se alguem puder me dar esta esta ´LUZ´ ficarei muito grato, pois esta tirando minha noite de sono.

Segue abaixo uma parte da código de importação


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.cdsContratos.Insert;

dm.cdsContratosPROPOSTA.Value := temp[0];
dm.cdsContratosDATA.Value := temp[1];
dm.cdsContratosCPF.Value := temp[2];
dm.cdsContratosNOME.Value := temp[3];
dm.cdsContratosUSUARIO.Value := temp[4];
dm.cdsContratosSTATUS.Value := temp[5];
dm.cdsContratosVALOR.AsString := temp[6];

dm.cdsContratosDATA_INCLUSAO.Value := temp[8];
dm.cdsContratosDATA_ENVIO.Value := temp[9];
dm.cdsContratosSTATUS_BACKOFFICE.Value := temp[10];
dm.cdsContratosSITUACAO_BACKOFFICE.Value := temp[11];
dm.cdsContratosFORMA_PGTO_0.Value := temp[12];
dm.cdsContratosBANCO_0.Value := temp[13];
dm.cdsContratosAGENCIA_0.Value := temp[14];
dm.cdsContratosCONTA_0.Value := temp[15];
dm.cdsContratosCPF_CGC2_0.Value := temp[16];
dm.cdsContratosNOME_RAZAO_SOC_0.Value := temp[17];
dm.cdsContratosVALOR_0.AsString := temp[18];
dm.cdsContratosDATA_PG_0.Value := temp[19];

dm.cdsContratos.Post;
dm.cdsContratos.ApplyUpdates(0);
end;
end;
Inc(i);
pb.Position := pb.Position + i;
Showmessage(´Registros importados com Sucesso!´);
Abort;
end;
end;

Obrigado.


Responder