• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4993
  • Last Modified:

oracle form error

hi,

a really big problem happen to my form,

its working fine untill when i try to re-run back the form i recieve the error as below

Compiling ON-POPULATE-DETAILS trigger on OFFERING data block...
Compilation error on ON-POPULATE-DETAILS trigger on OFFERING data block:
PL/SQL ERROR 201 at line 23, column 5
identifier 'QUERY_MASTER_DETAILS' must be declared
PL/SQL ERROR 0 at line 23, column 5
Statement ignored
PL/SQL ERROR 201 at line 31, column 6
identifier 'CHECK_PACKAGE_FAILURE' must be declared
PL/SQL ERROR 0 at line 31, column 6
Statement ignored

Compiling ON-POPULATE-DETAILS trigger on COURSE data block...
Compilation error on ON-POPULATE-DETAILS trigger on COURSE data block:
PL/SQL ERROR 201 at line 23, column 5
identifier 'QUERY_MASTER_DETAILS' must be declared
PL/SQL ERROR 0 at line 23, column 5
Statement ignored
PL/SQL ERROR 201 at line 31, column 6
identifier 'CHECK_PACKAGE_FAILURE' must be declared
PL/SQL ERROR 0 at line 31, column 6
Statement ignored

Compilation errors have occurred.


----------------------------

below is my offering datablock detail

-- Begin default relation program section
--
BEGIN
  IF ( recstat = 'NEW' or recstat = 'INSERT' ) THEN  
    RETURN;
  END IF;
  --
  -- Begin ATTENDANCE detail program section
  --
  IF ( (:OFFERING.OFFERING_ID is not null) ) THEN  
    rel_id := Find_Relation('OFFERING.OFFERING_ATTENDANCE');  
    Query_Master_Details(rel_id, 'ATTENDANCE');  
  END IF;
  --
  -- End ATTENDANCE detail program section
  --

  IF ( :System.cursor_item <> startitm ) THEN    
     Go_Item(startitm);    
     Check_Package_Failure;    
  END IF;
END;
--
-- End default relation program section
--
-----------------------------------------------
and below is course datablock

-----------------------
--
-- Begin default relation declare section
--
DECLARE
  recstat     VARCHAR2(20) := :System.record_status;  
  startitm    VARCHAR2(61) := :System.cursor_item;  
  rel_id      Relation;
--
-- End default relation declare section
--
--
-- Begin default relation program section
--
BEGIN
  IF ( recstat = 'NEW' or recstat = 'INSERT' ) THEN  
    RETURN;
  END IF;
  --
  -- Begin AUTH detail program section
  --
  IF ( (:COURSE.COURSE_ID is not null) ) THEN  
    rel_id := Find_Relation('COURSE.COURSE_AUTH');  
    Query_Master_Details(rel_id, 'AUTH');  
  END IF;
  --
  -- End AUTH detail program section
  --

  IF ( :System.cursor_item <> startitm ) THEN    
     Go_Item(startitm);    
     Check_Package_Failure;    
  END IF;
END;
--
-- End default relation program section
--




please help me solve it . really need urgent reply
0
newbies1512
Asked:
newbies1512
  • 4
  • 2
1 Solution
 
newbies1512Author Commented:
oh, i'm uising dev2000
0
 
newbies1512Author Commented:
ok

nevermind
settle already

the dev2k automaticaly delete my trigger and procedure body* .

this file is auto generated when created the form masterdetail.

so i recreate a sample master detail form, and copy this 3 files back to my form.

now running back to normal

regards
0
 
paquicubaCommented:
Procedure 'Query_Master_Details(rel_id, 'AUTH');'  is receiving two Actual Prameters 'rel_id' and 'AUTH', if you pass both parameters you're OK, that is variable rel_id gets a value assigned to it in the IF statement  ( rel_id := XXXXX )
If rel_id is null, then you must have a default value in your procedure specification ( unsupported parameter ) which is causing causes the error, since Forms' triggers don't support this type of calls.

Workaround:

Create a stored package with:
overloaded procedure specification in the package specification.
a private implementation using default parameters in the package body.

Hope this helps!
 
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
newbies1512Author Commented:
ok since i have no other question for the error,

i have another question to replace the above question

i have already build a master-detail form name 'special' by using dev2k.

now i wish to make a 2nd master-detail form that is the read only form for the above ' special'
form.

how do i do that?

i have try out to use duplicate to duplicate the speacial and rename it to 'specialro'
and also duplicate the canvas to 'specialro'

but it come out error when i compile it.

the error are as below;

frm30015-ambiguous item name SITE_ID
lov lov20
form question3
frm-30085:Unable to adjust form for output

i really dont know what to do now.

0
 
Mark GeerlingsDatabase AdministratorCommented:
If you want to make a second form that is a read-only copy of a current form, open the first form (that allows changes) in Forms Builder and do: File, Save As, and give it a different file name.  Then change the Module name so you will not be confused if you have both forms open at the same in Forms Builder in the future.  Now, to make it read-only, simply change the block properties for both the master and detail blocks to: Insert allowed = No; Update Allowed = No and Delete Allowed = No.  That's all you need, so save it again and compile it.

It may be helpful to change the Title property on the Window property sheet, and if you want to change something on the canvas as well, to indicate this is a read-only form, you can do that.

You can make other changes too that will make the form smaller and faster to load and execute, like deleting any commit-time triggers (pre or post insert, pre or post update, pre or post delete) and any when-validate-item or when-validate-record triggers.  Review the Program Units and delete any that were only called by triggers you have deleted.  But these changes are optional.
0
 
newbies1512Author Commented:
what i want to do is to create a 2nd form for a read only form OF the current form IN THE SAME BLOCK.

for example i want to both form full access form and read only form in the same block and save in the emp.fmb file.

The steps you mention is it creating another emp.fmb file?
0
 
Mark GeerlingsDatabase AdministratorCommented:
It seems that there is a problem with terminology you are using.  In Oracle Forms, a "form" = a *.fmb file.  That is, one *.fmb file is (contains) exactly one form.  This form may contain multiple blocks, and some blocks may allow full access and other blocks may be select-only, but you cannot have two "forms" in one *.fmb file.

So, please clarify what you want.  Is it two separate Oracle Forms, or is it one Form with different blocks, one or more of which are full-access, and one or more are read-only?  Having one Form with different blocks that access the same table but with different abilities is possible, but this doesn't look to me like good application design.

Are you aware that if your users each use their own database login, that just one full-access form may be all you need?  That would reliably limit the read-only users to the read-only access they should have, but allow the full-access users all of the features they need.  This may not be the most user-friendly approach, since it would appear to allow read-only users to make changes, then give them an erro when they try to save or exit, but it would be reliable.
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now