When I try querying using a VARCHAR2 non-based text item in a table-based block, setting dynamically in PRE-QUERY trigger the DEFAULT_WHERE property for its block, in case I use characters > or < (for bringing values greater or smaller than the one in the field, as in a standard Oracle query) error message is raised: 'FRM-40209 Field must be of form .' The issue has nothing to do with the error itself (usually related to erronated format mask of the field), and it is known as an Oracle Forms bug: I found it as bug 851153 - which appears on execute query if you enter in a non-base-table-item and the block has a pre-query trigger. The bug has been solved later in Oracle Developer Forms Builder 6i, or so I've been reading, problem is the application I'm working to requires Forms Builder 6.0.5.
I am trying to find an workaround for this situation and these are the info I managed to discover myself on the topic:
- if I fill the field with '>value instead of >value, query works fine, bringing only values greater than the specified value. (So far, this and inactivating the FRM-40209 error in ON-ERROR trigger seems like the best I can do)
- if I only use > (without '), I cannot use an auxiliar variable/global in which to store the actual value written in the field, I also cannot print the value in a message, because trying to use the exact string, it is shown as null (even though when the error is raised, value is still shown on the screen in the text item).
Maybe someone could help with an idea for an workaround in order to copy the content of the text field before it actually becomes null…