데이타베이스의 특정 테이블에서 채워지는 테이블 형식의 행을 가진 Oracle Forms 6i에서 실행되는 양식이 있습니다. 한 열에는 사용자가 가능한 값 중에서 선택할 수 있도록 [List_Of_Values] 속성이 활성화되어 있습니다.Oracle Forms 6i에서 레코드의 변경 사항을 되돌릴 수 있습니까?
목록의 일부 값은 사용자가이를 수행 할 권한이있는 경우에만 선택할 수 있으며 값을 변경 한 후에는 권한을 확인하기 위해 [WHEN-VALIDATE-ITEM] 트리거를 만들었습니다. 트리거는 form_trigger_failure를 발생시켜 사용자가 변경 사항을 저장하지 못하게합니다.
문제는 사용자가 값을 선택할 수있는 권한이 없다는 알림을 받으면 양식을 취소하지 않는 한 이전 값 (이전 값)을 다시 알기위한 방법이 없다는 것입니다. 그의 다른 (유효한) 변경 사항도 잃게됩니다. 여기
내가 ROLLBACK을 시도했지만 그 형태에 이전 값을 되 돌리지 않았다DECLARE
NEW_LOCATION VARCHAR2(100);
BEGIN
NEW_LOCATION := :BLK_MAT_STG_PLACES_PILE.STG_LOC_ID;
IF NEW_LOCATION LIKE 'OH01%' THEN
IF NOT :GLOBAL.USER_ID LIKE 'Admin%' THEN
MESSAGEBOX('You are not authorized to select this value');
/* What can I write to load the old value to this item? */
RAISE FORM_TRIGGER_FAILURE;
END IF;
END IF;
END;
트리거에서 작성한 코드입니다. SYNCHRONIZE도 시도했지만 효과가 없습니다. 값을 꺼내기 위해 데이터베이스 테이블을 다시 거치는 것 외에 다른 옵션이 있습니까? 다음과 같이 내 동료의
IF THEN 조건에서 실수를했습니다. 수정했습니다. 대답을 기다리는 중. – Ahmad
값을 보존하기 위해 전역 변수를 사용할 수 있는지 확인하십시오. – psaraj12
@ psaraj12 확인해 보니이 문제를 해결할 수있었습니다. 아래 내 대답을 확인 – Ahmad