Я впервые использую for update nowait
в Oracle Forms 12c для блокировки записи.
У меня есть блоки форм Master-detail, оба блока данных отображаются в виде табличного макета.Главный блок может обновляться.
Если дважды щелкнуть основную запись после блока запроса, он перейдет к блоку сведений и выстрелит execute_query
.
Мне нужно заблокировать основную запись вручную при двойном щелчке по ней.
В триггер блока данных при двойном щелчке я поставил следующее:
declare
t_dummy varchar2(10);
begin
--rollback;
Select 'y'
into t_dummy
from table
where voucherno=:master.voucherno
for update nowait;
go_block('detail');
execute_query;
exception
when others then
message('Fail to lock record. Other user is locking it.');
raise form_trigger_failure;
end;
Iпонятия не имею, где / как использовать откат.Мне нужно разблокировать запись, когда
- отмените выбор основной записи;
- форма выхода;
- запрос записи;
Я пытаюсь поставить rollback
, как отмечено выше, но не удалось, он очистил мастер-блок.
Пожалуйста, помогите