循环遍历Oracle表格中的所有数据块记录
问题描述:
我正在尝试学习Oracle Forms(v6.0)。在一个按钮按下的触发器中,我试图循环遍历数据块中的所有记录。到目前为止,我下面的代码:循环遍历Oracle表格中的所有数据块记录
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值。为什么它是这样的 - 消息显示在最后一次记录检查之前?什么是循环记录的正确方法?
答
您的循环是正确的。我怀疑最后一条消息显示在窗体底部的状态栏中,而不是弹出窗口。
答
为了得到一个弹出窗口使用同一行两次:
MESSAGE(:MY_BLOCK.DSP_NAME);
MESSAGE(:MY_BLOCK.DSP_NAME);
你会得到这样的看法。
你是绝对正确的,我想每个迭代都会显示一个消息框并且感到困惑。谢谢! – skujins 2013-02-20 06:36:23