[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
DBSETRELATION()
Relate two work areas
------------------------------------------------------------------------------
Syntax
DBSETRELATION(<nArea> | <cAlias>, <bExpr>, <cExpr>)
--> NIL
Arguments
<nArea> is a numeric value that specifies the work area number of
the child work area.
<cAlias> is a character value that specifies the alias of the child
work area.
<bExpr> is a code block that expresses the relational expression in
executable form.
<cExpr> is a character value that expresses the relational
expression in textual form.
Returns
DBSETRELATION() always returns NIL.
Description
DBSETRELATION() relates the work area specified by <nArea> or <cAlias>
(the child work area) to the current work area (the parent work area).
Any existing relations remain active.
Relating work areas synchronizes the child work area with the parent
work area. This is achieved by automatically repositioning the child
work area whenever the parent work area moves to a new record. If there
is an active index in the child work area, moving the parent work area
causes an automatic SEEK operation in the child work area; the seek key
is based on the expression specified by <bExpr> and/or <cExpr>. If the
child work area has no active index, moving the parent work area causes
an automatic GOTO in the child work area; the record number for the GOTO
is based on the expression specified by <bExpr> and/or <cExpr>.
The relational expression may be a code block (<bExpr>) or both a code
block and equivalent text (<cExpr>). If both versions are supplied,
they must be equivalent. If the text version is omitted, DBRELATION()
will return an empty string for the relation.
DBSETRELATION() performs the same function as the standard SET RELATION
command with the ADDITIVE clause. For more information, refer to the
SET RELATION command.
Notes
. Side effects: DBSETRELATION() is only guaranteed to
synchronize the work areas as described above. The relational
expression is not necessarily evaluated at any particular time, by
any particular means, or on any particular record or series of
records. If the relational expression relies on information external
to the parent work area or its associated database file, the effect
is unpredictable. If the expression changes the state of either work
area (e.g., by moving to a different record or changing the contents
of a record), the effect is unpredictable.
. Evaluation context: When the relational expression is
evaluated, the parent work area is automatically selected as the
current work area before the evaluation; the previously selected work
area is automatically restored afterward.
. Soft seeking: Seek operations that occur as part of relational
positioning are never soft seeks. If a relational movement is
unsuccessful, the child work area is positioned to LASTREC() + 1, its
FOUND() status returns false (.F.), and its EOF() status returns true
(.T.).
Examples
. This example demonstrates a typical use of the DBSETRELATION()
function:
USE Employee NEW
USE Department NEW INDEX Dept
SELECT Employee
DBSETRELATION("Department", {|| Employee->Dept},;
"Employee->Dept")
LIST Employee->Name, Department->Name
Files Library is CLIPPER.LIB.
See Also:
DBCLEARREL()
DBRELATION()
DBRSELECT()
FOUND()
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson