Difference between revisions of "DO"

From Recital Documentation Wiki
Jump to: navigation, search
Line 47: Line 47:
 
[[Category:Documentation]]
 
[[Category:Documentation]]
 
[[Category:Commands]]
 
[[Category:Commands]]
 +
[[Category:Applications]]
 +
[[Category:Applications Commands]]

Revision as of 11:58, 4 June 2009

Class

Applications


Purpose

Execute a Recital procedure, program or stored procedure


Syntax

DO <.prg filename> | <procedure-name> | (<expC>)

[WITH <parameter> [,<parameter>]...]

[WITH <array> [,<array>]...]


See Also

ALIAS, COMPILE, DB_MAXLEV, DEBUG, DO CASE, DO WHILE, LINK, MODIFY COMMAND, PARAMETERS, PCOUNT(), PROCEDURE, SET CLIPPER, SET COMPATIBLE, SET MAXDBO, SET PATH, SET PSHARE


Description

The DO command is used to execute the Recital/4GL program <.prg filename> or procedure <procedure-name>. The filename or procedure name can be substituted with a <expC>, enclosed in round brackets, which returns a valid filename. If no file extension is specified then '.prg' is used. If the full path is not given, the file is assumed to be in the current directory. The path (SET PATH) will also be searched it the file is not found in the current directory. When a program encounters an end of file or a RETURN statement, control returns back to the calling program. Control returns back to the keyboard if the <.prg filename> was called from interactive command mode.

The Recital/4GL supports 20 DO levels unless the environment symbol DB_MAXLEV (maximum 40) is set higher. This is also dependent on Operating System limits controlling the number of open files. Program files can be linked together if required, using the LINK command or the 'dbl' Recital linker utility (Recital Terminal Developer).

WITH <parameter> | <array>

You may optionally pass parameters including arrays to the called program. Parameters passed using the DO WITH <parameters> syntax are passed by reference and can be changed by the called procedure. Procedures can also be called using function syntax procedure(parameter1,parameter2…), in which case the parameters are passed by value and cannot be changed by the called procedure.

Procedures expecting parameters should have a PARAMETERS statement as the first executable statement after the procedure declaration. The number of parameters passed to a procedure can be checked using the PCOUNT() function. If CLIPPER is set ON and not all parameters are passed, the variables in the PARAMETERS command not passed will be defined as undefined, type "U" instead of logical .F..


Example

procedure name
  parameters a,b,c
  a = b*c
return
//
name(a,10,20)
// is equivalent to
do name with a,10,20


Products

Recital Database Server, Recital Mirage Server, Recital Terminal Developer