FAQ:
I have updated a table from the form and written a update statement in the when-button-pressed trigger.
while the code is working fine and the table is updated but iam finding this error in the console frm-40401 no changes to save. pls help me why it is coming and what affect it have on my form. i had suppressed this message by writing on-error trigger on form level.
You can bypass this by raising the message level.
Code:
DECLARE
-- Capture the original message level, to reset afterwards. v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; BEGIN -- Raise the message level above 5, avoid information messages. -- Read the Forms help file for more info :SYSTEM.MESSAGE_LEVEL := 5; COMMIT_FORM; -- Reset the message level to the original value :SYSTEM.MESSAGE_LEVEL := v_message_level; END;The message means that no database items in the Form have changed, so the BLOCK_STATUS is still in QUERY_STATUS. As a result, for Forms default transaction processing, there's nothing to save.
Alternatively, you can set the record status manually to changed_status, thus avoiding the message.
Processing:
DECLARE
-- Capture the original message level, to reset afterwards. l_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; BEGIN -- Raise the message level above 5, avoid information messages. -- Read the Forms help file for more info :SYSTEM.MESSAGE_LEVEL := 5; kol_osfm_move_trans_private.insert_row; do_key('COMMIT_FORM'); -- Reset the message level to the original value :SYSTEM.MESSAGE_LEVEL := l_message_level; END;