var i: Integer; .... // delete all rows, where ID = 100, without navigating through dataset for i := ADQuery1.Table.Rows.Count - 1 downto 0 do if ADQuery1.Table.Rows[i].GetData('id') = 100 then ADQuery1.Table.Rows[i].Delete; ADQuery1.Resync([]);