8

我正在尝试学习 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 值。为什么会这样 - 在最后一次记录检查之前显示消息?什么是循环记录的正确方法?

4

2 回答 2

8

你的循环是正确的。我怀疑最后一条消息显示在表单底部的状态栏中,而不是作为弹出窗口。

于 2013-02-19T19:20:11.690 回答
2

要获得弹出窗口,请使用同一行两次:

MESSAGE(:MY_BLOCK.DSP_NAME);

MESSAGE(:MY_BLOCK.DSP_NAME);

你会这样得到它。

于 2014-03-25T08:32:15.263 回答