Re: base table problems!!

From: DanHW <danhw_at_aol.com>
Date: 6 Sep 1998 00:32:32 GMT
Message-ID: <1998090600323200.UAA02485_at_ladder03.news.aol.com>


>what makes a base table block lose the VALUES keyword
>for INSERTing rows?
>
>in customizing oracle finance, i use the template.fmb
>provided by oracle to create new forms. in a form,
>i have a block which associates with a base table.
>in runtime, when i press the save button on the
>default toolbar to save the rows, the form raise
>an error message, telling me the VALUES keyword
>is missing!! but it is a base table! i dont think
>i need to write any INSERT statement to insert
>new records!
>
>can anyone tell me what happen?

Unfortunately, I know nothing about how Financials is structured, or the template, so the following is just guessing... from your message, you are doing an insert. Several of the other other responses dealt with querying, not inserting. When a row is inserted, Forms first executes the pre-insert trigger. This is where default values may be provided and various checks (like duplicates) can be done. This is NOT where the actual update is done however. Look for an ON-INSERT trigger. This fires to actually DO the insert. For example, if the base table is a complicated view (an thus cannot be updated/inserted), the developer look at the view definition and write a series of SQL insert/update statements to update the tables used in the view. If there is no ON-INSERT trigger, Oracle will construct one using the block's base table. If you do have a ON-INSERT trigger, Oracle will use that INSTEAD of one that it would generate. (a cheap way to prevent inserts/deletes/updates while testing - put a NULL; as the only statement in these triggers)

The ON-DELETE and ON-UPDATE triggers behave tha same way. Check the ON-INSERT (and perhaps the ON-UPDATE) triggers on the block(s) involved for some invalid syntax or something.

Good luck
Dan Hekimian-Williams Received on Sun Sep 06 1998 - 02:32:32 CEST

Original text of this message