Bill,

Yes, it sounds like a UV:UD difference, & yes, a UD deficiency.
Unless UD-basic or maybe a switch in the VOC's V-item, or something else that can alter the default behaviour. I know there is something akin to uv flavours that affects how things run, "ECL-type" is it?

See if the UD doc shows some way to do what the UV documentation says, which is as follows:

In UV-basic there are compiler options:

$OPTIONS EXEC.EQ.PERF compiles the EXECUTE statement as the PERFORM statement. $OPTIONS PERF.EQ.EXEC compiles the PERFORM statement as the EXECUTE statement. $OPTIONS PIOPEN.EXECUTE EXECUTE behaves similarly to the way it does on PI/open systems.

The default behaviour:

* PERFORM: The commands are executed in the same environment as the BASIC program that called them; that is, unnamed common variables, @variables, and in-line prompts retain their values, and select lists and the DATA stack remain active. If these values change, the new values are passed back to the calling program.

* EXECUTE creates a new environment for the executed command. This new environment is initialized with the values of the current prompt, current printer state, Break key counter, the values of inline prompts, KEYEDITs, KETRAPs, and KEYEXITs. If any of these values change in the new environment, the changes are not passed back to the calling environment. In the new environment, stacked @variables are either initialized to 0 or set to reflect the new environment. Nonstacked @variables are shared between the EXECUTE and calling environments.

@date, @time are stacked.  There is an appendix that lists all of them.

Maybe a UD guru will jump in here.

cds

Charles:

When I run a command from our TCL shell's prompt the command is executed. Thus the query is executed from a BASIC program. When I list the data calculated in the virtual attribute subroutine (an I-descriptor), the @DATE and @TIME value are static. When I run the query from real ECL the date/time are reset. So, in UD @DATE and @TIME aren't reset in a called child process. When I create a program that PERFORMs the query then run the program from our TCL shell (the query's executed from BASIC) the @DATE and @TIME don't change either.

So it seems there is nothing I can do in UD to alter these two @ variables as long as I'm running from BASIC. Thus, a called subroutine from a virtual attribute can't be initialized at the beginning of the query.

Wouldn't this seem like a deficiency to you?

Thanks,

Bill

_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to