CATEGORII DOCUMENTE |
Una din functiile importante ale unui SGBD este accesarea rapida a bazei de date. Cautarea si pozitionarea pe un anumit articol se poate face prin mai multe comenzi si functii. Reamintim comanda LOCATE (cauta secvential un articol care verifica o conditie indicata in clauza FOR pe domeniul precizat), CONTINUE (reia cautarea in continuarea fisierului, pozitionandu-se pe urmatorul articol care verifica conditia), functia LOOKUP (cauta si pozitioneaza).
Alte posibilitati de cautare rapida sunt dependente de starea de indexare a bazei de date.
1. Comanda FIND permite cautarea intr-o baza de date indexata a primului articol care are cheia de indexare egala cu expresia de cautare:
FIND <expC>/'<expC>' |
Cautarea se opreste la primul articol gasit, sau la sfarsitul fisierului.
<exp-sir> din comanda este incadrata obligatoriu de delimitatorii de sir, daca expresia de cautare incepe cu spatii.
2. Comanda SEEK permite cautarea intr-o baza de date indexata a primului articol care are aceeasi valoare a cheii de indexare cu a expresiei din comanda:
SEEK <exp> |
Comanda SEEK se executa intocmai ca si comanda FIND, numai ca <exp> de cautare nu mai este neaparat un sir ci poate fi orice variabila, constanta sau expresie in general.
Cautarea se opreste la primul articol din baza de date care are cheia de indexare egala cu valoarea expresiei - daca o astfel de inregistrare exista - sau la sfarsitul fisierului.
Exemplu:
CLOSE ALL
USE mijloacef INDEX mijloacef ORDER tcod
SEEK "C1 "
? FOUND ( )
. T .
? EOF ( )
. F .
? RECNO ( )
? RECNO ( 0 )
DISPLAY
USE
Functii de test asupra succesului sau insuccesului cautarii sunt.
1) functia FOUND() (intoarce .T. daca articolul s-a gasit)
2) functia EOF() (intoarce .T. daca articolul nu s-a gasit)
3. Functii de cautare:
SEEK (<exp>[,<nr-zona>/<alias>]) cauta prima inregistrare pentru care cheia de indexare este egala cu <exp>. Daca se gaseste functia, intoarce valoarea .T., iar indicatorul de inregistrari se va pozitiona pe inregistrarea gasita. Daca nu se gaseste articolul dorit, functia va intoarce valoarea .F., iar indicatorul de inregistrare se va afla dupa ultimul articol.
Functia SEEK inlocuieste secventa: - .SEEK<exp> - ?.FOUND()
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1090
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved