![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отмена операции удаления из таблицы [D7, MSAccess]
Zergling © (2003-07-04 08:14:00)Здраствуйте еще раз! Такая вот пролемка. В событии таблицы OnBeforeDelete такой код.
if MessageDlg("После удаления этой записи ... Выполнить
данную операцию?", mtWarning, [mbYes, mbNo], 0) = mrNo then
begin
Shipment.Cancel;
EXIT;
end;
На отвтет "No" запись все равно удаляется. Как мне отменить удаление записи если пользователь передумал удалять запись из таблицы? Работаю через ADO. Заранее благодарствую за помощь.
Alex_*** (2003-07-04 20:29:00) [1]Есть такая шайтан-процедура Abort
Zergling (2003-07-04 09:42:00) [2]Ну вот и разобрались :-). Спасибо.
ЮЮ (2003-07-04 09:10:00) [3]В Help-е все сказано:
Occurs before an application attempts to delete the active record.
property BeforeDelete: TDataSetNotifyEvent;
TDataSet.BeforeDelete
Description
Write a BeforeDelete event handler to take specific action before an application deletes the active record. BeforeDelete is called by Delete before it actually deletes a record.
Making use of this event an application might, for example, display a dialog box asking for confirmation before deleting the record. On denial of confirmation, the application could abort the deletion by calling the Abortprocedure.
Zergling (2003-07-04 09:01:00) [4]ЮЮ © (04.07.03 08:20)
> Очевидно, надо вызвать исключение в этом обработчике,
Нееее так не поедет. Например: Выполнить данную операцию? -> No после этого еще и второе окно получить с сообщением об исключительной ситуации. На до шоб для пользователя все культурно было.
> Нормальное завершение OnBeforeDelete тоже никак не припятсвует > > последующему удалению
OnBeforeDelete по хелпу вызывается перед удалением записи => уменя осталось мнение что прервать операцию удаления можно более культурным методом. Только вот как? Вот в чем вопрос :-).
ЮЮ (2003-07-04 08:20:00) [5]Shipment.Cancel только отменяет изменения в Shipment и никак не влиет на операцию удаление. Нормальное завершение OnBeforeDelete тоже никак не припятсвует последующему удалению. Очевидно, надо вызвать исключение в этом обработчике, дабы код непосредственного удаления записи в методе Delete не сработал