Muchas gracias por sus respuestas y su tiempo. Al final lo hice de esta manera:
Código:
function TForm1.insertarRegistrosEnTAP2_CDRs(SRuta: String; id_archivo: integer; OraConn:TADOConnection): integer;
var
Arch: TextFile;
rsResultCDRs:TADOQuery;
ArchivoEntero, insertCDR, Registro, Campo1, Campo2, Campo3, Campo4, Campo5, Campo6, Campo7, Campo8, Campo9, Campo10, Campo11, Campo12, Campo13, Campo14, Campo15,
Campo16, Campo17, Campo18, Campo19, Campo20, Campo21, Campo22, Campo23, Campo24, Campo25, Campo26, Campo27, Campo28, Campo29, Campo30,
Campo31, Campo32: String;
i,cnt: integer;
Seguir: Boolean;
begin
cnt := 0;
Campo1 := '0';
AssignFile(Arch,SRuta);
Reset(Arch);
i := 1;
readln(Arch,ArchivoEntero);
Seguir := True;
while Seguir do
begin
Registro := Copy(ArchivoEntero,i,160);
Campo1 := Copy(Registro,1,2);
if (Campo1 = '90') then
Seguir := False
else
begin
if ((Campo1 = '20') or (Campo1 = '30') or (Campo1 = '40')) then
begin
rsResultCDRs:=TADOQuery.Create(nil);
rsResultCDRs.Connection:=OraConn;
Campo2 := Copy(Registro,3,6);
if Campo2 = '' then
Campo2 := '''';
Campo3 := Copy(Registro,9,1);
if Campo3 = '' then
Campo3 := '''';
Campo4 := Copy(Registro,10,15);
if Campo4 = '' then
Campo4 := '''';
Campo5 := Copy(Registro,25,16);
if Campo5 = '' then
Campo5 := '''';
Campo6 := Copy(Registro,41,1);
if Campo6 = '' then
Campo6 := '''';
Campo7 := Copy(Registro,42,1);
if Campo7 = '' then
Campo7 := '''';
Campo8 := Copy(Registro,43,1);
if Campo8 = '' then
Campo8 := '''';
Campo9 := Copy(Registro,44,21);
if Campo9 = '' then
Campo9 := '''';
Campo10 := Copy(Registro,65,1);
if Campo10 = '' then
Campo10 := '''';
Campo11 := Copy(Registro,66,2);
if Campo11 = '' then
Campo11 := '''';
Campo12 := Copy(Registro,68,1);
if Campo12 = '' then
Campo12 := '''';
Campo13 := Copy(Registro,69,2);
if Campo13 = '' then
Campo13 := '''';
Campo14 := Copy(Registro,71,1);
if Campo14 = '' then
Campo14 := '''';
Campo15 := Copy(Registro,72,1);
if Campo15 = '' then
Campo15 := '''';
Campo16 := Copy(Registro,73,1);
if Campo16 = '' then
Campo16 := '''';
Campo17 := Copy(Registro,74,15);
if Campo17 = '' then
Campo17 := '''';
Campo18 := Copy(Registro,89,15);
if Campo18 = '' then
Campo18 := '''';
Campo19 := Copy(Registro,104,5);
if Campo19 = '' then
Campo19 := '''';
Campo20 := Copy(Registro,109,5);
if Campo20 = '' then
Campo20 := '''';
Campo21 := Copy(Registro,114,1);
if Campo21 = '' then
Campo21 := '''';
Campo22 := Copy(Registro,115,6);
if Campo22 = '' then
Campo22 := '''';
Campo23 := Copy(Registro,121,6);
if Campo23 = '' then
Campo23 := '''';
Campo24 := Copy(Registro,127,1);
if Campo24 = '' then
Campo24 := '''';
Campo25 := Copy(Registro,128,6);
if Campo25 = '' then
Campo25 := '''';
Campo26 := Copy(Registro,134,6);
if Campo26 = '' then
Campo26 := '''';
Campo27 := Copy(Registro,140,9);
if Campo27 = '' then
Campo27 := '''';
Campo28 := Copy(Registro,149,1);
if Campo28 = '' then
Campo28 := '''';
Campo29 := Copy(Registro,150,1);
if Campo29 = '' then
Campo29 := '''';
Campo30 := Copy(Registro,151,1);
if Campo30 = '' then
Campo30 := '''';
Campo31 := Copy(Registro,152,6);
if Campo31 = '' then
Campo31 := '''';
Campo32 := Copy(Registro,158,13);
if Campo32 = '' then
Campo32 := '''';
cnt := cnt + 1;
lblestado.Caption:='Estado: Insertando registro detalle ' + intToStr(cnt) + ' en TAP2_CDRS';
lblestado.Refresh;
insertCDR := 'insert into TAP2_CDRS values(seq_tap2_cdrs.nextval,'+intToStr(id_archivo)+',sysdate,'''','+Campo1+','''+Campo2+''','''+Campo3+''','''+Campo4+''','''+Campo5+''','''+Campo6+''','''+Campo7+''','''+Campo8+''','''+Campo9+''','''+Campo10+''','''+Campo11+''','''+Campo12+''','''+Campo13+''','''+Campo14+''','''+Campo15+''','''+Campo16+''','''+Campo17+''','''+Campo18+''','+Campo19+','+Campo20+','+Campo21+','''+Campo22+''','''+Campo23+''','''+Campo24+''','+Campo25+','+Campo26+','+Campo27+','''+Campo28+''','+Campo29+','''+Campo30+''','''+Campo31+''','''+Campo32+''')';
rsResultCDRs.SQL.Add(insertCDR);
rsResultCDRs.ExecSQL;
rsResultCDRs.Close;
rsResultCDRs.Destroy;
end;
end;
i := i + 160;
end;
CloseFile(Arch);
Result := cnt;
end;