Oracle 在 When-Validate-Record 触发器中形成清晰的记录
Oracle Forms Clear Record in When-Validate-Record Trigger
当用户开始填写记录然后他们在提交之前单击其他记录我想清除最后一条记录,就像它从未填写过一样。
所以我在数据块中创建 when-validate-record 如下:
begin
if :MYBLOCK.SEQ is null then --if there is no seq yet, means its not committed
Clear_Record;
end if;
end;
但是 clear_record
导致错误 Invalid limited CLEAR_RECORD procedure
并且用法对我来说似乎是正确的。我也尝试了 Clear_Record(no_validate)
但它也不起作用。我看到了 clear_record
的一些用法,但我不明白为什么它不起作用。我需要一些帮助。
提前致谢。
受限程序(不是有限,如您所说)不能从所有触发器调用; WHEN-VALIDATE-RECORD
成为其中之一。
您可能选择的一个选项是与用户交互并告诉他们该做什么。仍然是 WHEN-VALIDATE-RECORD
触发器:
if :MYBLOCK.SEQ is null then -- if there is no seq yet, means its not committed
message('Save the record or - if you do not need it - delete it');
raise form_trigger_failure;
end if;
这种方法的好处是用户(而不是后台程序)决定要做什么。我不想在屏幕上输入 20 个字段,不小心点击了以前的记录之一而丢失了我到目前为止所做的一切。
当用户开始填写记录然后他们在提交之前单击其他记录我想清除最后一条记录,就像它从未填写过一样。
所以我在数据块中创建 when-validate-record 如下:
begin
if :MYBLOCK.SEQ is null then --if there is no seq yet, means its not committed
Clear_Record;
end if;
end;
但是 clear_record
导致错误 Invalid limited CLEAR_RECORD procedure
并且用法对我来说似乎是正确的。我也尝试了 Clear_Record(no_validate)
但它也不起作用。我看到了 clear_record
的一些用法,但我不明白为什么它不起作用。我需要一些帮助。
提前致谢。
受限程序(不是有限,如您所说)不能从所有触发器调用; WHEN-VALIDATE-RECORD
成为其中之一。
您可能选择的一个选项是与用户交互并告诉他们该做什么。仍然是 WHEN-VALIDATE-RECORD
触发器:
if :MYBLOCK.SEQ is null then -- if there is no seq yet, means its not committed
message('Save the record or - if you do not need it - delete it');
raise form_trigger_failure;
end if;
这种方法的好处是用户(而不是后台程序)决定要做什么。我不想在屏幕上输入 20 个字段,不小心点击了以前的记录之一而丢失了我到目前为止所做的一切。