In cazul in care dorim sa gasim o inregistrare care sa satisfaca anumite
conditii, putem folosi comanda LOCATE
sintaxa : LOCATE FOR <expL1>
[<domeniu>] [WHILE<expL2>]
Comanda cauta prima inregistrare care respecta conditia <expL1> in b.d.
activa. Domeniul inregistrarilor care se testeaza este
dat de clauzele <domeniu> si WHILE, domeniul implicit fiind ALL.
In caz de reusita, adica la gasirea unei inregistrari care respecta conditia
<expL1>, indicatorul de inregistrari se pozitioneaza pe inregistrarea
respectiva, functia FOUND( ) va returna valoarea .T.
iar functia EOF( ) va returna valoarea .F.
In caz contrar, indicatorul de inregistrari va fi pozitionat dupa ultima
inregistrare (numarul total de inregistrari +1), FOUND( ) va returna .F. iar
EOF( ) va returna .T.
Intr-o b.d. pot exista mai multe inregistrari care respecta o conditie data.
Prima dintre acestea va fi gasita folosind comanda LOCATE, urmatoarele vor fi
gasite folosind comanda CONTINUE
sintaxa : CONTINUE
Comanda gaseste urmatoarea inregistrare care respecta conditiile specificate in
ultima comanda LOCATE aplicata b.d. active.
Testarea reusitei sau nereusitei cautarii se face cu functiile RECNO(), FOUND(
) si EOF( )
Functia FOUND( )
sintaxa : FOUND( [<exp N>] )
este folosita pentru testarea rezultatului unei cautari in b.d.(eventual
specificata prin zona de lucru <exp N> ). Ea returneaza .T. daca s-a
gasit o inregistrare si .F. daca nu s-a gasit nici o inregistrare care sa satisfaca conditiile impuse de LOCATE.