AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.10.2005, 11:21   #1  
usach is offline
usach
Участник
 
55 / 10 (1) +
Регистрация: 31.08.2005
? изменение значения поля в OnDelete
Мне нужно в onDelete определить возможно ли удаление записи, и если нет, то поставить значение поля Blocking в TRUE.

как это сделать?
PHP код:
Blocking:=TRUE;
или
MODIFYALL
(BlockingTRUE);
 ....
ERROR("...."); 
не получается.
Старый 12.10.2005, 16:37   #2  
Sharky is offline
Sharky
Участник
 
118 / 10 (1) +
Регистрация: 10.12.2002
Я думаю надо сделать так:


IF (Нельзя Уалить) THEN BEGIN
Blocking := TRUE;
MODIFY;
COMMIT;
Error('Удаление Невозможно')
END;
Старый 12.10.2005, 16:37   #3  
Polar is offline
Polar
Участник
Аватар для Polar
 
281 / 74 (3) ++++
Регистрация: 28.07.2003
Адрес: Ростов-на-Дону
Потому что ERROR откатывает все изменения.

Если уж очень надо то закрывай транзакцию перед ERROR.

Blocking:=TRUE;
или
MODIFYALL(Blocking, TRUE);
....
COMMIT;
ERROR("....");


Но это глупый код. Мой тебе совет узнать для чего это нужно и сделать по-другому.
__________________
Удачи!
Старый 12.10.2005, 16:38   #4  
Polar is offline
Polar
Участник
Аватар для Polar
 
281 / 74 (3) ++++
Регистрация: 28.07.2003
Адрес: Ростов-на-Дону
Sharky, первый нах?
__________________
Удачи!
Старый 12.10.2005, 16:41   #5  
Sharky is offline
Sharky
Участник
 
118 / 10 (1) +
Регистрация: 10.12.2002
Палюбому ...
Старый 13.10.2005, 09:52   #6  
usach is offline
usach
Участник
 
55 / 10 (1) +
Регистрация: 31.08.2005
Цитата:
Изначально опубликовано Polar
Потому что ERROR откатывает все изменения.

Если уж очень надо то закрывай транзакцию перед ERROR.

Blocking:=TRUE;
или
MODIFYALL(Blocking, TRUE);
....
COMMIT;
ERROR("....");


Но это глупый код. Мой тебе совет узнать для чего это нужно и сделать по-другому.
Почему глупый?
Мне нужно прверять есть ли ссылка на запись из Таблицы1 в Таблице2, если да, то удаление нневоозможно.
Старый 14.10.2005, 16:36   #7  
Polar is offline
Polar
Участник
Аватар для Polar
 
281 / 74 (3) ++++
Регистрация: 28.07.2003
Адрес: Ростов-на-Дону
дело в том что если до этой проверки ты что-то менял в базе данных то изменения останутся.
Если у тебя будет какая-нибудь не простая процедура, то половина изменений сохранится а другая откатится. Вот будет весело потом.
А если ты еще и не один программишь, то какой-нибудь коллега у себя сделает
в коде таблица.Delete(true) и вспоминать тебя будет очень долго.

Не приучай себя к такому коду. мой тебе искренний совет.
__________________
Удачи!
Старый 17.10.2005, 14:27   #8  
usach is offline
usach
Участник
 
55 / 10 (1) +
Регистрация: 31.08.2005
Цитата:
Сообщение от Polar
дело в том что если до этой проверки ты что-то менял в базе данных то изменения останутся.
Если у тебя будет какая-нибудь не простая процедура, то половина изменений сохранится а другая откатится. Вот будет весело потом.
А если ты еще и не один программишь, то какой-нибудь коллега у себя сделает
в коде таблица.Delete(true) и вспоминать тебя будет очень долго.

Не приучай себя к такому коду. мой тебе искренний совет.
Несовсем понял, но.... а как посоветуешь сделать тогда?
Старый 17.10.2005, 17:07   #9  
Polar is offline
Polar
Участник
Аватар для Polar
 
281 / 74 (3) ++++
Регистрация: 28.07.2003
Адрес: Ростов-на-Дону
Цитата:
Сообщение от usach
Несовсем понял, но.... а как посоветуешь сделать тогда?
Зачем поля модифицировать? Можно же и без модификаций узнать можно удалять или нет.
короче, COMMIT - опасная вещь. Все равно что гасить тараканов вакуумными бомбами высокой плотности.
__________________
Удачи!

Последний раз редактировалось Polar; 17.10.2005 в 17:25.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Именение значений поля в очень большом кол-ве записей TeHb NAV: Программирование 3 07.12.2006 00:36
Проблема: FieldRef и Название Поля ka9218 NAV: Программирование 3 07.03.2006 12:13
триггер OnLookup поля формы Alex_V NAV: Программирование 4 14.07.2004 15:12
Как автоматически вставить значения в поля arseniy NAV: Программирование 5 07.04.2004 14:30
редактирование поля option Alex_V NAV: Программирование 2 19.09.2003 13:33

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:14.