Previous Topic: GETNext Topic: KEEP LONGTERM


KEEP

Purpose

Places a shared or exclusive lock on a record occurrence that is current of run unit, record, set, or area.

Syntax

►►─── KEEP ─────┬─────────────┬────── CURRENT ────────────────────────────────►
                └─ EXCLUSIVE ─┘

 ►────┬─ record-name ──────┬──────┬────────────────────┬─────── . ────────────►◄
      ├─ WITHIN set-name  ─┤      └─ error-expression ─┘
      └─ WITHIN area-name ─┘

Parameters

EXCLUSIVE

Places an exclusive lock on the object record. If EXCLUSIVE is not specified, the object record receives a shared lock.

CURRENT

Places a lock on the current record of run unit.

record-name

Places the record lock on the current record of the named record type.

WITHIN set-name

Places the record lock on the current record of the named set.

WITHIN area-name

Places the record lock on the current record of the named area.

error-expression

Specifies the status codes that are returned to the dialog.

Usage

Definition

Record locks set with the KEEP command are maintained only for the duration of the run unit or until explicitly released by means of a COMMIT command. The COMMIT command is described earlier in this section.

Considerations

If autostatus is not in use, a dialog's error-status field indicates the outcome of a KEEP command:

Status code

Meaning

0000

The request was executed successfully

0606

Currency was not established for the named record, set, or area

0610

The dialog's subschema specifies a privacy lock that prohibits execution of the KEEP command

0629

Deadlock occurred during locking of target record.

More information:

Error Handling