ID, type_id, type_desc 및 state_id의 4 개 열이있는 OBJECTS 테이블이 있습니다.Oracle Forms : 사전 삭제 트리거가 작동하지 않음
state_id가 'DELETE'이면 행 삭제를 중단하고 '이 행을 삭제할 수 없습니다'라는 경고 메시지를 표시하려고합니다.
begin
if :OBJECTS.state_id = 'DELETE' then
set_item_instance_property('OBJECTS.state_id', CURRENT_RECORD, VISUAL_ATTRIBUTE, 'ERROR');
if show_alert('ALERT_DEL') = alert_button1 then
null;
end if;
raise FORM_TRIGGER_FAILURE;
end if;
end;
불행하게도, 경고 메시지가 표시되지 않습니다 : 다음은 PRE_DELETE 트리거입니다.
편집 : 오류 FRM-40741을 반환 오라클 양식 : 블록 객체에 대한 기록 공을 찾을 수 없습니다 내가이 전에 언급하는 것을 잊었다.
편집 : 나는 또한 PRE-UPDATE 트리거를 할 노력하고있어 : 항목에 대한 참조가 삭제 확인할 수 없습니다 :
declare
stateID varchar2(10);
pressed_button number(2,0);
info number(2,0);
begin
stateID := get_item_property(:OBJECTS.state_id, DATABASE_VALUE);
set_alert_property('ALERT_INFO',alert_message_text,'STATE_ID: ' || stateID);
info := show_alert('ALERT_INFO');
if stateID = 'DELETE' then
set_item_instance_property('OBJECTS.state_id', CURRENT_RECORD, VISUAL_ATTRIBUTE, 'ERROR');
pressed_button := show_alert('ALERT_EDIT');
raise FORM_TRIGGER_FAILURE;
end if;
end;
내가 오류 FRM-40105를 얻을. 그래서 데이터베이스에 저장된 state_id의 값을 표시하기 위해 ALERT_INFO 경고를 만들었습니다. 나는 아무것도 보여주지 않는다. 내가 도대체 뭘 잘못하고있는 겁니까?