error while building relatioship between master/details blocks

hi
i have form , has master / detail block
i created the blocks & relationship using oracle form wizard
and working well
then i changed the data source for both of them from table to be : select from query
then , when i tried to run the form , it send me error message
FRM-41104 , cannot find relation , invalid id
i deleted the relationship , also i deleted the 2 triggers , : op-popoulate details & on_delete_master
and i created a procedure to query the detail block based on a value of the master
i call it on < when_mouse_click
the error still
i back created a relation manually
the relation works , but still submitting the above mentioned error
NiceMan331Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

NiceMan331Author Commented:
sorry , i found the mistake
after reviewing the trigger of the relation , i found one relation which now out .
i delete it , the error disappear now
now , the question is , what is the mecanizm of the relation :
is it querying the data source of the detail block for each record of master block every time , or it keep the query for the first time and only filter the records based on the value of the master block
 is it better to disable calling the procedure and stay depend on the relation ?
and which one consume more amount of time ?
0
Helena Markováprogrammer-analystCommented:
I think that it is always better to use relation, because it uses forms built-in mechanism.
For understanding relation mechanism you can find all informations in the forms on-line help ("Relation Properties" topic).

This is from "Coordination Property" topic:
Specifies how and when the population phase of block coordination should occur. Specify the coordination desired by setting the Deferred and Auto Query properties. When you set these properties at design time, Oracle Forms creates or modifies the appropriate master-detail triggers to enforce the coordination setting you choose.
...

Usage Notes
 

Whenever the current record in the master block changes at runtime (a coordination-causing event), Oracle Forms needs to populate the detail block with a new set of records. You can specify exactly how and when that population should occur by setting this property to one of three valid settings:

Deferred=No,Auto Query ignored

The default setting. When a coordination-causing event occurs in the master block, the detail records are fetched immediately.  


Deferred=Yes, Auto Query=Yes

When a coordination-causing event occurs, Oracle Forms defers fetching the associated detail records until the operator navigates to the detail block.  


Deferred=Yes, Auto Query=No

When a coordination-causing event occurs, Oracle Forms defers fetching the associated detail records until the operator navigates to the detail block and explicitly executes a query.  


Deferred=No,Auto Query=Yes

Not a valid setting.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
NiceMan331Author Commented:
thanx henka for the explanation
but please note that my blocks has select from
and every block should be filter after selecting one record in the master
for example
i have 5 blocks
1st main , has : cost_center, acc_no , date , amount
i have 3 non database items for : ost_center, acc_no , date
and one push button
when i press it , it will call a procedure to filter data blcok by those 3 creteria
set_block_property('TB_CNTR_ACTS',QUERY_DATA_SOURCE_NAME,sql_string);

Open in new window

then , if i select any record on that master , the 1st detail block should filter
based on cost_center of the master , in addition to the acc_no & date in the non database items
then , if i click one record in the detail , the 2nd detail block should be filtered on same acc_no in the 1st detail block
and so on
all those i'm using the above trigger to filter their data
, what do think , stay using the relation and disable the procedures ?
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Helena Markováprogrammer-analystCommented:
I think that you can still use relations. It seems that you ought to try both options :).
0
NiceMan331Author Commented:
in this case , what you advice to use regarding :  Deferred, Auto Query
0
Helena Markováprogrammer-analystCommented:
I would at first try Deferred = Yes, Auto Query = Yes.
0
NiceMan331Author Commented:
sorry , i forget to tell you something
the main purpose i used procedure is to reduce query time for each block
because when they have all relation , and when when click on master block , it takes time to query the related other 3 blocks , and so on
so , i select to call the procedure on when mouse click , to only query the related block
and no need to query now the others
that really reduced qurieing time
0
Helena Markováprogrammer-analystCommented:
If it works then the relations are not needed :).
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.