Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Cautarea datelor in tabela
Bazele de date voluminoase sunt foarte greu de exploatat fara ajutorul unui mecanism de cautare puternic, care sa permita regasirea oricarei date intr-un timp util. Cautarea in tabele este o operatie foarte raspandita. Ea se realizeaza pe baza unui criteriu de cautare, materializat practic intr-o conditie introdusa intr-o comanda de cautare. Efectul comenzii respective este acela de pozitionare a indicatorului de inregistrari pe prima inregistrare care respecta conditia, pentru care valoarea expresiei logice este adevart.
De exemplu, aflarea valorii unui anumit mijloc fix presupune mai intai gasirea mijlocului fix respectiv, urmata de citirea valorii din campul valoare. Identificarea unui mijloc fix dupa datele specifice presupune cautarea intr-o tabela acelui mijloc fix care corespunde datelor respective. Acestea sunt probleme practice in care intervine cautarea unei anumite inregistrari intr-o tabela.
In FoxPro problema cautarii inregistrarilor intr-o tabela se rezolva cu ajutorul perechii de comenzi LOCATE si CONTINUE. Prima dintre ele este urmata de conditia pe care trebuie sa o respecte inregistrarea cautata in tabela activa. Domeniul inregistrarilor care se testeaza poate fi de asemenea, specificat explicit in comanda, cel implicit fiind ALL
In caz de reusita adica la gasirea unei inregistrari care respecta conditia impusa, indicatorul de inregistrari se va pozitiona 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 valoarea .T..
Intr-o tabela pot exista mai multe inregistrari ce respecta o conditie data. Prima dintre aceasta va fi gasita folosind comanda LOCATE, iar urmatoarele vor fi gasite prin intermediul comenzii CONTINUE. Aceasta gaseste urmatoarea inregistrare care respecta conditia specificata in ultima comanda LOCATE aplicata tabelei active. Testarea reusitei sau nereusitei cautarii se face ca la comanda LOCATE cu ajutorul functiilor RECNO (), FOUND () si EOF ()
Sa se gaseasca primele doua materiale ce necesita aprovizionare, din tabela STOCURI:
CLOSE ALL
USE stocuri
LOCATE FOR cantitate<cant_norm
? FOUND ()
.T. cautare reusita
? EOF ()
.F.
? RECNO ()
CONTINUE
? FOUND ()
.F. cautare nereusita
? EOF ()
.T.
? RECNO ()
USE
O tehnica speciala de cautare, mult mai rapida decat cea secventiala impusa de comanda LOCATE, este posibila in cazul tabelelor indexate. Aceasta tehnica este implementata prin comanda SEEK sau functia cu acelasi nume si va fi prezentata in paragraful referitor la indexarea tabelelor.
Copyright © 2024 - Toate drepturile rezervate