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