Re: Forms 4.0

From: L. Carl Pedersen <carl.pedersen_at_dartmouth.edu>
Date: 30 Sep 92 00:02:25 GMT
Message-ID: <carl.pedersen-290992193605_at_kip-sn-49.dartmouth.edu>


In article <KMALLORY.92Sep29133949_at_hqsun4.oracle.com>, kmallory_at_oracle.com (Kevin Mallory) wrote:
>

 [A bunch of great news about the new SQL*Forms. Omitted for brevity.]
>
> Please do not send questions about specific features to me via mail.
> Please post your questions here and we will be happy to answer them.

OK, here goes:

A while back, I posted a question about ON-ERROR and ON-MESSAGE triggers. I got no responses at all, posted, mailed or otherwise.

We're using SQL*Forms 3.0.16.9.0 on VMS 5.3.

I would like to replace all or most of the builtin error messages with "custom" error messages. I can do this using ON-ERROR and/or ON-MESSAGE triggers. An example of this technique appears in the manual: "Advanced SQL*Forms Techniques".

The problem is that when I use the MESSAGE procedure in ON-ERROR or ON-MESSAGE, a subsequent reference to FORM_SUCCESS will return TRUE, even if it would have returned FALSE before the trigger fired.

This makes it extremely difficult for the code in all of my other triggers to determine whether or not errors have happened. I've managed to work around this problem only by creating an elaborate system of my own using several global variables and procedures that need to be called from dozens of different places in my form.

It's possible that the problem with FORM_SUCCESS (and other similar procedures) is just a bug in this version of forms. The SQL*Forms manual leave room for doubt. For example, many of the flowcharts in chapter 21 have a box that says "Display a message", with a specific message, followed by an arrow that says "Stop with failure". The question is, if FORM_SUCCESS has a value of TRUE, how can I tell that failure has occurred?  (I consider it significant that the "Display a Message" flowchart *always* stops with success.)

It's also possible that what we have here is a more basic design problem. My Forms manual says that FORM_SUCCESS "returns the outcome of the action most recently performed...." Clearly, it is doing that for me. The trouble is that this isn't always the most useful thing for it to return. I *think* it'd be better if FORM_SUCCESS was set to FALSE whenever we go through one of those "Stop with failure" boxes on the flow chart.

I've asked several people at Oracle about this and so far I've gotten no clarification.

Aside from this nasty problem, I also don't like the fact that if I forget to check for success/faiure after a packaged procedure call - my code will continue to execute as if nothing happened - blundering along and possibly doing damage or at least confusing the user with additional errors. Seems to be like it'd be better for the packaged procedures to raise exceptions or something.

Is the error-handling situation any better in SQL*Forms 4.0?

Also, how can I become a beta-tester for Forms 4.0 - either on the Macintosh or VMS? Received on Wed Sep 30 1992 - 01:02:25 CET

Original text of this message