views:

171

answers:

2

Can anyone think of a way to reverse a POST that has been issued in Oracle Forms? Note; this is a POST, not COMMIT.

Its quite complex but basically I need to POST so I can query against some records that will normally be created but at a later point I may need to change some values. This requires me to undo the previous POST.

I've tried a ROLLBACK (and ROLLBACK TO) but Oracle Forms clears the entire form in this case, which is pretty useless when I only need to change 1 value.

+2  A: 

Post has always been troublesome for me also... Personally, when I I try to do a "post" things get complicated. Instead I would merge the two forms into one with master block on top and detail block on bottom. If the the number of fields would cause a lot of vertical scrolling you can always put the master block on a tab and the detail block on a second tab.

Of course remember to only merge if possible and only if it makes sense to do such a thing.

ajdams
A: 

I think another option to consider is a global temporary table with ON COMMIT DELETE ROWS; your form could insert/update/query this table all it likes, with POST to get the rows into the table; then when the user hits Save, the form's PRE-COMMIT trigger could copy the rows from the GTT to the "real" table.

Jeffrey Kemp