GENERATE

Generates application code from a template.

Syntax

GENERATE zimprog [ (parm)|string ]

Parameters

zimprogThe name of an application document that contains an application program template.
parmAn expression whose value is to be passed to zimprog. Multiple parameters must be separated from one another by commas.
stringA string that is passed to zimprog if zimprog is a macro program.

Comments

The commands in zimprog are executed interactively. When an opening program template delimiter (<<) is encountered, execution is suspended, and the subsequent lines are written (after macro substitutions) to the current output. This process ends when a closing program template delimiter (>>) is encountered alone on a line.

See Also

$ (Template line join)

Program Templates and the GENERATE Command

GOTO PREVIOUS

Branches from an exception handler to the command that caused the exception.

Syntax

GOTO PREVIOUS

Comments

GOTO PREVIOUS is used only in an exception handler and only to branch to the command that caused the exception to occur. GOTO PREVIOUS exits the exception handler, and closes it in the same way as ENDON.

Example

Note: In this example, all transactions are assumed to be implicit transactions (i.e., single commands).

procedure UpdateDB()

 on deadlock

  output “The database is busy.”

   output “Do you want to try again? ( y/ n):” ;

   input Response

  if Response = ” y”

goto previous

  else

   return

  endif

 endon

 … the rest of the commands in the procedure …

endprocedure

If a deadlock condition occurs, the exception handler asks the application user if the transaction should be attempted again. If the answer is yes, the GOTO PREVIOUS command causes the application program to retry the command that caused the deadlock condition. If the answer is no, the procedure terminates.

See Also

GOTO

GOTO NEXT

ON

PAGE FOOTING

Specifies the page footing for a report.

Syntax

PAGE FOOTING reportitem [:format:]

Parameters

reportitemAny valid expression. Complex expressions must be enclosed in parentheses. When you specify more than one expression, each must be separated from the next by at least one space.
formatA set of instructions defining the format for the associated reportitem. Format is enclosed in : (colons) and can consist of any valid combination of format options.

Comments

the PAGE FOOTING command causes a footing to be displayed at the bottom of every page of a report. Report items in this command can include individual data values only from the last record processed on the current report page; however, summary information computed over all the members on the current report page can be displayed in the footing.

See Also

BREAK (Reports)

How to Use The Report Generator

PAGE HEADING

REPORT FOOTING

Report Item Format Options

SORT

Sorts the members of an existing result set.

Syntax

SORT [setname>] BY expression [ASCENDING|DESCENDING]

Parameters

setname

The name of a result set. If setname is not specified, the current set is used.

expression

An expression that identifies a field to be used as a sort key. Complex expressions must be enclosed in parentheses.

ASCENDING or DESCENDING

Specifies how the sort on the associated key is to be performed.
ASCENDING (default)
Sorts in “alphabetical order” (A-Z, 0-9).
DESCENDING
Sorts in “reverse alphabetical order” (Z-A, 9-0).

Example

find all Employees where Name = Smith -> SmithNames

sort SmithNames by Salary

The preceding two commands could be combined into one by using a SORTED BY subcommand.

sort SmithNames by FirstName DeptNum Salary descending

The preceding command sorts the employees named Smith by first name (ascending order), department (ascending order), and salary (descending order).

 

See Also

SORTED BY

PAGE RIGHT

Specifies the vertical footing for each page in a column-oriented report.

Syntax

PAGE RIGHT reportitem [:format:]

Parameters

reportitem

Any valid expression. Complex expressions must be enclosed in parentheses. When you specify more than one expression, each must be separated from the next by at least one space.

format

A set of instructions defining the format for the associated reportitem. Format is enclosed in : (colons) and can consist of any valid combination of format options.

Comments

The PAGE RIGHT “footing” is placed along the right-hand edge of each page in a column-oriented report. The column of text generated by this command ends in the right-most column of the page. Report items in this command can include individual data values only from the last record processed on the current report page; however, summary information computed over all the members on the current report page (using aggregate functions) can be displayed in the footing.

 

See Also

How to Use The Report Generator

Output Masks

Report Item Format Options

DELETE

Deletes data from EntitySets or relationships with fields.

Syntax

DELETE [num] [setspec] [EVALUATE clause] [-> clause]

Parameters

numCan be
an integer constant (15, 200);
a variable, a form field, or a parameter that evaluates to an integer;
the word ALL.
If num is omitted, or less than 0, it defaults to 1.
setspecThe set specification for the simple set whose records you want to delete. If omitted, records are deleted from the current set (if it exists).

Comments

Records cannot be deleted from a composite set. Data cannot be deleted from application documents or forms.
If the target of DELETE is a set object or result set, deletion always starts at the current member of the set.

Data removed from the database by a DELETE command cannot be recovered.

Example

delete

Deletes the current member of the current set.

delete 5 Employees where DeptNum = D01

Deletes the first five records in Employees where the department number is D01.

See Also

$MemberCount

DELETE FROM

ENCRYPT

Encrypts the data in an EntitySet or relationship with fields.

Syntax

ENCRYPT object

Parameters

objectThe name of an EntitySet or a relationship with fields. Can be a role name.

Comments

The ENCRYPT command makes stored data meaningless to anyone scanning a raw database file on disk, thereby protecting the data from unauthorized access. The encryption key is established when the New Database utility is executed.
If the data in the specified object has already been encrypted, reissuing the command raises an error.
The ENCRYPT and DECRYPT commands prevent users outside of an application session from reading sensitive data contained in disk files. All encryption and decryption in a particular database is based on a key established when you initiate a new database .
Encrypted EntitySets and relationships are accessed in exactly the same way as un-encrypted EntitySets or relationships. Internally, the software automatically decrypts data from an encrypted file as you work with that file. A slight performance penalty is paid for working with encrypted data.
An encrypted object can be returned to normal with a DECRYPT command.

See Also

DECRYPT

Securing Data Inside an Application

HALT

In application programs, sets break points where execution is to be halted.

Syntax

HALT

Comments

The HALT command suspends execution of the currently executing application program and displays the HALT prompt (>>) at the terminal. You can then enter any command, including a call to another program.

The SET SINGLESTEP ON command causes the HALT command to be automatically executed after each command in the currently executing program.

If executed at the HALT prompt, BYE, RETURN, STOP, and global SET commands act in the usual manner. Local SET commands (e.g., LEXTRACE, RUNTIME, FLOW) is applied to the suspended program when it resumes.

If desired, you can redefine HALT to perform any useful function.

To re-define HALT, first ERASE the HALT program. Next, change the definition of HALT in the Documents EntitySet: make HALT correspond to a disk file called HALT.DOC. CREATE HALT again, ensuring that HALT.DOC contains the commands to perform the desired function.

For example, if you wanted to track memory use, HALT.DOC can contain the line:

system ” chkdsk”

% this command shows memory use

If you were to issue the command SET SINGLESTEP ON, the new version of HALT would be executed after every command, giving you a continuous record of disk and memory use.

Example

halt  % at >> prompt, you can turn on tracing,

   % output variables, etc.

 

GRAPH

Starts a graphics program.

Syntax

GRAPH expression [ RESET|CLOSE] [INVISIBLE] [BACKGROUND]

Parameters

expression

 

A character string, or expression that evaluates to a character string. The content of the string is passed to the graphics program call (e.g., parameters). If no parameters are required, specify the null string.

 

RESET

 

Flushes all internal data buffers to disk.

 

CLOSE

 

Flushes all internal data buffers to disk, and closes all files not currently in use.

 

INVISIBLE

 

Executes the graphics program without affecting the screen display.

 

BACKGROUND

 

Executes the graphics program asynchronously while Zim continues to run. You can continue working, and have a number of graphics sessions running concurrently.

 

Note: BACKGROUND is ignored in some operating environments.

Comments

The value of the system variable $Graphics identifies the graphics program to be run. If $Graphics has not been assigned a value, the default value is used.

When you exit a graphics program that was not run in the BACKGROUND, execution of your application program resumes following the call to the graphics program.

 

See Also

EDIT

SYSTEM

EDIT

Starts a text editor to edit an application document.

Syntax

EDIT docname [BACKGROUND]

Parameters

docname

The name of an application document.

BACKGROUND

Indicates that the editor is to be executed asynchronously while the application continues to run.

Comments

The value assigned to $Editor should be the full path and file name of the desired text editor.

With BACKGROUND omitted, the EDIT command causes execution to be suspended; the editor takes over. When you exit from the text editor, execution resumes from the point at which the EDIT command was encountered.

With BACKGROUND specified, the editor can be running in its own window while the application continues to execute. You can have concurrent editing sessions.

Note: Any return code that is generated by the editor is placed in the $ErrCode system variable.

BACKGROUND is ignored in some operating environments and when using Zim Thin Client.

Example

To start a text editor, edit.com, for editing MainProg, enter

let $Editor = “NotePad”

edit MainProg

that sets the $Editor system variable to the name of the desired edit program. It then calls up that program to edit the specified file.

 

See Also

$Editor

$ErrCode

GRAPH

SYSTEM

pt_BRPortuguese