Solved

Form Block Status Changed After Querying

Posted on 2003-11-25
2
5,185 Views
Last Modified: 2013-12-12
I'm running a master form and I query records.  Then I click on a button which then passes the primary ID by calling a detailed form.  If based on the primary ID (which is the foreign key to the detailed form), there are no records, then I populate certain columns with default data from the master form.

If there are records, then I just go to the block and query all the records via EXECUTE_QUERY.

Now here's the twist.  If I were to immediately exit the form, Oracle Forms prompts me "Do you want to save the changes you have made?"  Well I haven't made any changes.  Using a tool called SQL Monitor here are the statments <B>AFTER</B> Forms executes the query:

SELECT ROWID, qtr_asof, qtr,
       earned_start_date, earned_end_date,
       summary_descr, cust_value,
       amgen_value, comments, cre_user,
       cre_date, upd_user, upd_date,
       offline_req_sid, SID
  FROM pmt_offline_req_lines
 ORDER BY earned_start_date DESC;

SELECT qtr_asof, qtr,
       earned_start_date, earned_end_date,
       summary_descr, cust_value,
       amgen_value, comments, cre_user,
       cre_date, upd_user, upd_date,
       offline_req_sid, SID
  FROM pmt_offline_req_lines
 WHERE ROWID = 'AAAg1IAAFAAB6BQAAA'
   FOR UPDATE OF qtr_asof NOWAIT;

Why would Forms immediately set this block to "CHANGED" status by locking the row for update?

Thanks, I'm really stumped by this one.


Forms [32 Bit] Version 6.0.8.18.3 (Production)
Oracle8i Enterprise Edition Release 8.1.6.2.0 - Production
     With the Partitioning option
     JServer Release 8.1.6.2.0 - Production
Oracle Toolkit Version 6.0.8.18.0 (Production)
PL/SQL Version 8.0.6.3.0 (Production)
Oracle Procedure Builder V6.0.8.17.0 Build #863 - Production
PL/SQL Editor (c) WinMain Software (www.winmain.com), v1.0 (Production)


Giovanni Jaramillo
Oracle Developer Contractor
AMGEN Inc. - Sales & Marketing Information Systems
Thousand Oaks, CA  91320-1799
http://www.amgen.com
0
Comment
Question by:jaramill
2 Comments
 
LVL 5

Accepted Solution

by:
gmyers earned 500 total points
ID: 9821909
There might be something getting automatically changed.
Given that it is only taking out a lock on one record, rather than all, I'd guess it is a when-new-record/item-instance or a navigation trigger changing something for the first record (eg :block.upd_user = get_application_property(username);).
If you run the form with debug_messages=yes (tools, preferences, run-time tab if you run from Forms Builder) it will give you an alert for each trigger that fires. It may give you an idea what could be doing the change
0
 
LVL 3

Author Comment

by:jaramill
ID: 9821970
You're right G. Myers, I had a WHEN-NEW-RECORD-INSTANCE and I didn't know that upon querying records, that trigger gets fired as well.  Of course in that trigger I was prepopulating field items like you suggested

:block.cre_user := USER;
etc....
etc...

This was driving me nuts!!

Thanks
Gio

P.S. - I'm in a good mood now...so I'll bump up the points to 500 since it was urgent.
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Join & Write a Comment

Suggested Solutions

Article by: Swadhin
From the Oracle SQL Reference (http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/queries006.htm) we are told that a join is a query that combines rows from two or more tables, views, or materialized views. This article provides a glimps…
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
Via a live example show how to connect to RMAN, make basic configuration settings changes and then take a backup of a demo database
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

747 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now