![]() |
#1 |
Участник
|
![]()
Мне нужно в onDelete определить возможно ли удаление записи, и если нет, то поставить значение поля Blocking в TRUE.
как это сделать? PHP код:
|
|
![]() |
#2 |
Участник
|
Я думаю надо сделать так:
IF (Нельзя Уалить) THEN BEGIN Blocking := TRUE; MODIFY; COMMIT; Error('Удаление Невозможно') END; |
|
![]() |
#3 |
Участник
|
Потому что ERROR откатывает все изменения.
Если уж очень надо то закрывай транзакцию перед ERROR. Blocking:=TRUE; или MODIFYALL(Blocking, TRUE); .... COMMIT; ERROR("...."); Но это глупый код. Мой тебе совет узнать для чего это нужно и сделать по-другому.
__________________
Удачи! |
|
![]() |
#4 |
Участник
|
Sharky, первый нах?
![]()
__________________
Удачи! |
|
![]() |
#5 |
Участник
|
Палюбому
![]() |
|
![]() |
#6 |
Участник
|
Цитата:
Изначально опубликовано Polar
Потому что ERROR откатывает все изменения. Если уж очень надо то закрывай транзакцию перед ERROR. Blocking:=TRUE; или MODIFYALL(Blocking, TRUE); .... COMMIT; ERROR("...."); Но это глупый код. Мой тебе совет узнать для чего это нужно и сделать по-другому. Мне нужно прверять есть ли ссылка на запись из Таблицы1 в Таблице2, если да, то удаление нневоозможно. |
|
![]() |
#7 |
Участник
|
дело в том что если до этой проверки ты что-то менял в базе данных то изменения останутся.
Если у тебя будет какая-нибудь не простая процедура, то половина изменений сохранится а другая откатится. Вот будет весело потом. А если ты еще и не один программишь, то какой-нибудь коллега у себя сделает в коде таблица.Delete(true) и вспоминать тебя будет очень долго. Не приучай себя к такому коду. мой тебе искренний совет.
__________________
Удачи! |
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от Polar
дело в том что если до этой проверки ты что-то менял в базе данных то изменения останутся.
Если у тебя будет какая-нибудь не простая процедура, то половина изменений сохранится а другая откатится. Вот будет весело потом. А если ты еще и не один программишь, то какой-нибудь коллега у себя сделает в коде таблица.Delete(true) и вспоминать тебя будет очень долго. Не приучай себя к такому коду. мой тебе искренний совет. |
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от usach
Несовсем понял, но.... а как посоветуешь сделать тогда?
короче, COMMIT - опасная вещь. Все равно что гасить тараканов вакуумными бомбами высокой плотности. ![]() ![]()
__________________
Удачи! Последний раз редактировалось Polar; 17.10.2005 в 17:25. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|