Добавление записей

Добавлять записи можно только к модифицируемому НД.

Для добавления записи нужно выполнить следующие действия:

§ перевести НД в режим вставки;

§ задать значения полей текущей записи;

§ подтвердить сделанные изменения или отказаться от них, после чего НД снова переходит в режим просмотра.

Метод Insert переводит НД в режим вставки и добавляет к нему новую пустую запись. Новая запись вставляется перед текущей записью. При необходимости перед вызовом метода Insert необходимо выполнить перемещение текущего указателя на ту запись НД, перед которой вставляется новая запись.

Метод Append вставляет новую запись в конец НД.

Для компонента DBGrid новая запись добавляется к НД при нажатии клавиши [Insert] или при переходе на последнюю запись. Если на форме находится компонент DBNavigator, то новая запись добавляется при нажатии кнопки Insert Record (Вставить запись).

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

Удаление текущей записи выполняет метод 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 позволяет удалить записи, видимые в НД. Поэтому с помощью фильтрации можно временно оставить в НД записи, которые подлежат удалению, а после удаления фильтрацию отключить.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: