[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

Form_Status changing to QUERY and FRM-40401 No changes to save.

Posted on 2004-11-16
5
Medium Priority
?
14,890 Views
Last Modified: 2007-12-19
Dear All,

I'm using Oracle Forms Builder 6i to connect to Oracle9i PE. In my

application I called an oracle form with a non database block using

CALL_FORM('CHG_PWD', HIDE, NO_REPLACE, NO_QUERY_ONLY; to change user's

password contained in an Oracle9i table.

In the form's When-New-Form-Instance

MESSAGE('SYSTEM.Message_Level=' || :SYSTEM.Message_Level || '

System.Form_Status=' || :System.Form_Status || 'System.Block_Status='

|| :System.Block_Status || 'System.Record_Status=' ||

:System.Record_Status);

giving results as follows:
SYSTEM.Message_Level=0
System.Form_Status=NEW
System.Block_Status=NEW
System.Record_Status=NEW

After input every user field in When-Button-Pressed (OK Button) after

update statement (UPDATE USER SET PASSWD = :BLK_CHG_PWD.PSSWD WHERE

USERID = :BLK_CHG_PWD.USERNAME). If I use COMMIT or COMMIT_FORM it is

giving error "FRM-40401 No changes to save"

but FORMS_DDL('COMMIT'); is working fine and

MESSAGE('SYSTEM.Message_Level=' || :SYSTEM.Message_Level || '

System.Form_Status=' || :System.Form_Status || 'System.Block_Status='

|| :System.Block_Status || 'System.Record_Status=' ||

:System.Record_Status);

giving results as follows:
SYSTEM.Message_Level=0
System.Form_Status=QUERY
System.Block_Status=QUERY
System.Record_Status=INSERT

Can please anybody help me that without using any query SQL why

Form_Status and Block_Status is 'QUERY' and why Record_Status=INSERT

it should be 'CHANGED'.

Thanks/ Rgds

RKS
0
Comment
Question by:raju707
  • 2
4 Comments
 
LVL 22

Expert Comment

by:Helena Marková
ID: 12592685
This is not an error, it is information, level 5:
FRM-40401:  No changes to save.

Cause:      No records were added or modified since the last apply or save.

Action:      No action is necessary.

Since you use "UPDATE USER SET PASSWD = :BLK_CHG_PWD.PSSWD WHERE ... " instead of Forms built-in functionality you receive the Record_Status=INSERT. I think that block "BLK_CHG_PWD" is not based on a table.
See "FORMS_DDL built-in" topic in the on-line help.
0
 
LVL 13

Expert Comment

by:anand_2000v
ID: 12592809
to avoid the message use
"query_only".  or set
:SYSTEM.MESSAGE_LEVEL =10 in the new-form-instance trigger.
As Henka pointed out,  it  is just an information.
0
 
LVL 13

Accepted Solution

by:
anand_2000v earned 100 total points
ID: 12592811
0
 
LVL 5

Expert Comment

by:alexfrl
ID: 12595662
1) I have a doubt according to the message on database 'COMMIT' command. It never happens to me and I use this command it.
2) COMMIT_FORM consider the current FORM_STATUS which is query and you get absolutely correct message.
3) You probably do not neutralize the ON-LOCK trigger and FORMS gets a reflection of your updating and changes the row status only because there are no real changes on your form.

Try to neutralize your ON-LOCK trigger by the "return;" command and then use COMMIT;
or
add set_record_property(:system.cursor_record,:system.trigger_block,STATUS,QUERY_STATUS); right after your update statement and then ... use COMMIT;
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article started out as an Experts-Exchange question, which then grew into a quick tip to go along with an IOUG presentation for the Collaborate confernce and then later grew again into a full blown article with expanded functionality and legacy…
This post first appeared at Oracleinaction  (http://oracleinaction.com/undo-and-redo-in-oracle/)by Anju Garg (Myself). I  will demonstrate that undo for DML’s is stored both in undo tablespace and online redo logs. Then, we will analyze the reaso…
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
This video explains what a user managed backup is and shows how to take one, providing a couple of simple example scripts.
Suggested Courses
Course of the Month19 days, 13 hours left to enroll

872 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question