[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 SEEK
 Search an order for a specified key value
------------------------------------------------------------------------------
 Syntax

     SEEK <expSearch> [SOFTSEEK]

 Arguments

     <expSearch> is an expression to match with an order key value.

     SOFTSEEK causes the record pointer to be moved to the next record
     with a higher key value after a failed order search.  Default behavior
     moves the record pointer to EOF() after a failed order search.

 Description

     SEEK is a database command that searches the controlling order from the
     first or last key value (depending on whether the LAST keyword is
     specified) and proceeds until a match is found or there is a key value
     greater than <expSearch>.  If there is a match, the record pointer is
     positioned to the identity found in the order.  If SOFTSEEK is OFF (the
     default) and SEEK does not find a match, the record pointer is
     positioned to LASTREC() + 1, EOF() returns true (.T.), and FOUND()
     returns false (.F.).

     SOFTSEEK enables a method of searching an order and returning a record
     even if there is no match for a specified key.

     When SOFTSEEK is ON and a match for a SEEK is not found, the record
     pointer is set to the next record in the order with a higher key value
     than the SEEK argument.  Records are not visible because SET FILTER
     and/or SET DELETED are skipped when searching for the next higher key
     value.  If there is no record with a higher key value, the record
     pointer is positioned at LASTREC() + 1, EOF() returns true (.T.), and
     FOUND() returns false (.F.).  FOUND() returns true (.T.) only if the
     record is actually found.  FOUND() never returns true (.T.) for a
     relative find.

     When SOFTSEEK is OFF and a SEEK is unsuccessful, the record pointer is
     positioned at LASTREC() + 1, EOF() returns true (.T.), and FOUND()
     returns false (.F.).

     SEEK with the SOFTSEEK clause is, effectively, the same as performing
     SET SOFTSEEK and then SEEK in earlier versions of CA-Clipper except that
     it does not change the global setting of SOFTSEEK.

 Examples

     .  The following example searches for "Doe" using the SEEK
        command:

        USE Customer NEW
        SET ORDER TO Customer
        ? SET( _SET_SOFTSEEK )      // (.F.)
        SEEK "Doe"
        ? SET( _SET_SOFTSEEK )      // Still (.F.)
        IF FOUND()
           .
           . < statements >
           .
        ENDIF

     .  The following example performs a soft seek for "Doe" using
        SOFTSEEK clause of the SEEK command:

        USE Customer NEW
        SET ORDER TO Customer
        ? SET( _SET_SOFTSEEK )      // (.F.)
        SEEK "Doe" SOFTSEEK
        ? SET( _SET_SOFTSEEK )      // Still (.F.)
        IF !FOUND()
           ? Customer->Name         // Returns next logical name after "Doe"
        ENDIF

 Files   Library is CLIPPER.LIB.

See Also: DBSEEK() DBSETINDEX() DBSETORDER() EOF() SET INDEX
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson