2013-02-19 120 views
4

我正在嘗試學習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值。爲什麼它是這樣的 - 消息顯示在最後一次記錄檢查之前?什麼是循環記錄的正確方法?

回答

5

您的循環是正確的。我懷疑最後一條消息顯示在窗體底部的狀態欄中,而不是彈出窗口。

+0

你是絕對正確的,我想每個迭代都會顯示一個消息框並且感到困惑。謝謝! – skujins 2013-02-20 06:36:23

2

爲了得到一個彈出窗口使用同一行兩次:

MESSAGE(:MY_BLOCK.DSP_NAME); 

MESSAGE(:MY_BLOCK.DSP_NAME); 

你會得到這樣的看法。