Удаление записей. Удаление текущей записи выполняет метод Delete, который работает только с модифицируемым НД
Удаление текущей записи выполняет метод Delete, который работает только с модифицируемым НД. В случае успешного удаления записи текущей становится следующая запись, если же удалялась последняя запись, то курсор перемещается на предыдущую запись, которая после удаления становится последней.
При удалении записи генерируются события BeforeDelete и AfterDelete.
Если при удалении записи требуется подтверждение удаления, то можно написать следующий обработчик события OnClick для кнопки Button «Удалить запись»:
procedure TForm1.Button1Click(Sender: TObject);
Begin
if MessageDlg ('Удалить запись?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
Table1.Delete;
end;
Удаление нескольких последовательно расположенных записей имеет особенность, связанную с тем, что при вызове метода Delete в цикле по перебору удаляемых записей не нужно вызывать методы, перемещающие указатель текущей записи. после удаления текущей записи указатель автоматически перемещается на соседнюю (обычно следующую) запись. Так можно удалить все записи НД:
procedure TForm1.Button1Click(Sender: TObject);
var n:longint;
Begin
Table1.Last;
For n:= Table1.RecordCount downto 1 do Table1.Delete;
end;
В примере перебор записей выполняется с конца НД. После удаления текущей записи указатель снова оказывается на последней записи.
Перед удалением записи часто предварительно выполняется поиск записи, удовлетворяющей заданным условиям. Для отбора группы удаляемых записей используется фильтрация. Метод Delete позволяет удалить записи, видимые в НД. Поэтому с помощью фильтрации можно временно оставить в НД записи, которые подлежат удалению, а после удаления фильтрацию отключить.
Дата добавления: 2015-05-16; просмотров: 742;