While not (DMF.ZQReg.EOF ) do
begin  
if algunacondicion then
   
 begin
      nEmple:=DMF.ZQReg.FieldByName('regemple').AsInteger;
     
 dFechaHora:=DMF.ZQReg.FieldByName('regfechahora').AsDateTime;
     
DMF.ZQReg.Edit;
     
 DMF.ZQReg.Delete;
      Inc(nContador);
    end
  else
   
begin
     
nEmple:=DMF.ZQReg.FieldByName('regemple').AsInteger;
     
dFechaHora:=DMF.ZQReg.FieldByName('regfechahora').AsDateTime;
      DMF.ZQReg.Next;
    end;
end;  En este caso debo eliminar registros duplicados de lector biométrico, en algunacondicion evaluo si el registro es duplicado y tomo los datos antes de borrarlo, porque a veces los datos están hasta quintuplicados.
Como puede verse, el Next lo realizo solo si no se elimina el registro (fila).
Si el volumen de datos a procesar es grande, conviene utilizar una conexión sin autocommit y utilizar BEGIN y COMMIT tal como se explica aquí.
 
No hay comentarios:
Publicar un comentario