我正在尝试学习Oracle表单(v6.0)。在按下按钮的触发器中,我试图遍历数据块中的所有记录。到目前为止,我有以下代码:
BEGIN
GO_BLOCK('MY_BLOCK');
FIRST_RECORD;
LOOP
MESSAGE(:MY_BLOCK.DSP_NAME);
EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
NEXT_RECORD;
END LOOP;
END;
当我运行代码时,除最后一个之外,显示所有DSP_NAME值。如果我添加:
MESSAGE(:MY_BLOCK.DSP_NAME);
循环后,显示最后一条记录的DSP_NAME值。为什么会这样 - 在最后一次记录检查之前显示消息?什么是循环记录的正确方法?
答案 0 :(得分:7)
你的循环是正确的。我怀疑最后一条消息显示在表单底部的状态栏中,而不是弹出窗口。
答案 1 :(得分:2)
要获得弹出窗口,请使用相同的两行:
MESSAGE(:MY_BLOCK.DSP_NAME);
MESSAGE(:MY_BLOCK.DSP_NAME);
你会这样做的。