DBSEEK()

Searches for a value based on an active index.

Syntax

DBSEEK(<expKey>, [<lSoftSeek>],[<lFindLast>]) --> lFound

Arguments

<expKey> Any expression

<lSoftSeek> Toggle SOFTSEEK condition

<lFindLast> is an optional logical value that set the current record position to the last record if successful

Returns

DBSEEK() returns logical true (.T.) if found, otherwise false

Description

This function searches for the first record in a database file whose index key matches <expKey>. If the item is found, the function will return a logical true (.T.), the value of FOUND() wilI be a logical true (.T.), and the value of EOF() wilI be a logical false (.F.). If no item is found. then the function will return a logical false, the value of FOUND( ) will be a logical false (.F.), and the value of EOF( ) will be a logical true (.T.).

This function always "rewinds" the database pointer and starts the search from the top of the file.

If the SOFTSEEK flag is on or if <lSoftSeek> is set to a logical true (.T.) the value of FOUND() wilI be a logical false and EOF() will be false if there is an item in the index key with a greater value than the key expression <expKey>; at this point the record pointer will position itself on that record. However, if there is no greater key in the index,EOF() will return a logical true (.T.) value. If <lSoftSeek> is not passed, the function will look to the internal status of SOFTSEEK before performing the operation. The default of <lSoftSeek> is a logical false (.F.)
Examples
      FUNCTION Main()
      USE Tests New INDEX Tests
      DBGOTO(10)
      nId:=Tests->nId
      IF Tests->(DBSEEK(nId))
        IF RLOCK()
           ? Tests->Name
           DBRUNLOCK()
        ENDIF
      ENDIF
      USE
      RETURN NIL

      ACCEPT "Employee name: " TO cName
      IF ( Employee->(DBSEEK(cName)) )
         Employee->(ViewRecord())
      ELSE
         ? "Not found"
      END

Status

Started

Compliance

DBSEEK() is Compatible with CA-Clipper 5.3

Files

Library is rdd

See Also