Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Getting 'No changes to Save' After Commit in Forms?

778 views
Skip to first unread message

Amanda Zaborowski

unread,
Aug 24, 2000, 3:00:00 AM8/24/00
to
I have developed a form to insert info into a table...it is inserting the
data into the table just fine (when I do a select in SQLPlus, all data is
there), with a procedure that selects from a table, then inserts this data,
along with data that the user has entered, into another table.
Unfortunately, it seems, after the commit in the procedure, Oracle tries to
do another save, and I end up getting the error 'FRM-40401 - No changes to
save.' Also, if I include an error checking statement in the form
(:ERR_MSG_DISPLAY := SQLCODE), it not only gives me the error above, but
then goes further, and gives the generic message 'Unable to INSERT'....

I hope this is clear, and that someone could tell me how to get rid of
whatever Oracle is doing in the background to cause these messages. I had
asked an instructor about this previously, in a Developer class, and his
answer was 'Don't worry about that message.' If I had only known the
problems this would cause!!!

Thanks so much in advance - I am at my wits end!

Amanda

DanHW

unread,
Aug 24, 2000, 3:00:00 AM8/24/00
to

The problem is that your procedure does a commit. When it is Forms turn to
commit, there is nothing left to commit.

The solution...
One is to remove the COMMIT from your insert operation (is it on the on-insert
trigger?). When the on-insert code is finished, a commit will be performed as
part of the process.

Another possibility is to put some code in the on-commit trigger. Then, when
forms would do a commit, it would do the code in the on-commit trigger, which
is nothing, and go on. [I haven't tried this method though]

Dan Hekimian-Williams

Luis Cabral

unread,
Aug 25, 2000, 3:00:00 AM8/25/00
to
Hello

In PL/SQL, Forms translates COMMITs to COMMIT_FORM
procedure, as well ROLLBACKs to CLEAR_FORM procedure.

If you want to do a *database* commit or rollback,
you can use the package DBMS_TRANSACTION:

dbms_transaction.commit;
dbms_transcation.rollback;

Of course, these do not commit or rollback data
in the form itself.

In article <8o3dml$rf6$1...@slb6.atl.mindspring.net>,


Sent via Deja.com http://www.deja.com/
Before you buy.

Mike Dwyer

unread,
Aug 28, 2000, 3:00:00 AM8/28/00
to
The COMMIT is operating in the form as well as in the database. Because you
have not changed the current record in the form, there are no *form* changes
to save. The *insert* is committed, however.

The error message is a low-level error that can be easily suppressed.
Instead of a simple commit, do this:
:system.message_level := 5;
commit;
:system.message_level := 0;

Purists would have you retrieve and save the current message-level, increase
it by 5, and then restore it after the commit.


"Amanda Zaborowski" <azab...@mindspring.com> wrote in message
news:8o3dml$rf6$1...@slb6.atl.mindspring.net...

purchasing kareem

unread,
Dec 11, 2022, 6:42:42 AM12/11/22
to
thanks very much
0 new messages