Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Удаление записей

CuBook05

Удаление текущей записи выполняет метод Delete, который работает только с модифицируемым набором данных. В случае успешного удаления записи текущей становится следующая запись, если же удалялась последняя запись, то курсор перемещается на предыдущую запись, которая после удаления становится последней. В отличие от некоторых СУБД, в С++ Builder удаляемая запись действительно удаляется из набора данных. Обычно метод Delete вызывается для удаления просматриваемой записи, однако с его помощью можно удалить и редактируемую запись. Если набор данных находится в режиме вставки или поиска, то вызов метода Delete аналогичен вызову метода Cancel, отменяя соответственно вставку или поиск записи.
 
При удалении записи генерируются события BeforeDelete и AfterDelete типа TDataSetNotifyEvent. Используя обработчик события BeforeDelete, можно отменить операцию удаления, если не соблюдаются определенные условия. Если выполнение метода Delete приводит к ошибке, то возбуждается исключение, и генерируется событие OnDeleteError, в обработчике которого можно выполнить собственный анализ ошибки. Удаление нескольких последовательно расположенных записей имеет особенность, связанную с тем, что при вызове метода Delete после удаления текущей записи указатель автоматически перемещается на следующую запись.
 
Приведем пример удаления записей набора данных с текущей по первую:
void __fastcall TForm1::Button1Click(TObjееt *Sender)
{
int n;
Table1->RecNo;
while (n>=1)
{
Table1->Delete();
Table1->RecNo=Table1->RecNo-1;
n--;
}
}
В примере перебор записей выполняется с текущей записи набора данных. После удаления текущей записи указатель снова оказывается на записи с номером на единицу меньше вплоть до первой записи набора данных.
 
Для набора данных Table удалить все записи можно также с помощью метода EmptyTable, который вызывается в режиме исключительного доступа к таблице БД. Перед удалением записи часто предварительно выполняется поиск записи (записей), удовлетворяющей заданным условиям. Для отбора группы удаляемых записей используется фильтрация. Метод Delete позволяет удалить записи, видимые в наборе данных. Поэтому с помощью фильтрации можно временно оставить в наборе данных записи, которые подлежат удалению, а после удаления фильтрацию отключить.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий