Documente Academic
Documente Profesional
Documente Cultură
Cnd se dorete operarea asupra nregistrrilor unui tabel ntr-o anumit ordine, se folosesc
indecii drept mecanisme de ordonare. Se pot crea i utiliza mai multe chei index pentru acelai tabel i
se poate lucra cu nregistrrile ordonate diferit funcie de cerinele aplicaiei. Pe baza indecilor se pot
crea legturi permanente ntre tabele care s ofere acces exact la nregistrrile dorite.
Un index n Visual FoxPro este un fiier care conine pointeri ordonai n mod logic de
ctre o cheie de indexare. Indexul nu schimb ordinea fizic a nregistrrilor n tabel (fiierul .dbf).
Tipuri de indexuri
Indexuri normale (Regular) i indexuri unice (Unique)
In cazul unui index Regular, FoxPro memoreaz valoarea generat de expresia de index,
pentru fiecare nregistrare a tabelului n index. Dac mai multe nregistrri au aceeai expresie
aceasta se memoreaz de mai multe ori cu pointeri separai pentru fiecare din nregistrri.
Indexul de tip Unique include n index numai expresii unice. Dac mai multe nregistrri
genereaz aceeai valoare a expresiei de index, Unique o memoreaz doar pe prima ntlnit.
Indexuri candidat (Candidate) i index primar (Primary)
Indexul candidat, creaz un index unic, dar indexul include toate nregistrrile din tabel.
Indexurile Candidate nu permit repetarea valorilor expresiei pentru nregistrrile tabelului.
Un tabel independent poate avea un index Candidate, dar numai tabelele dintr-un container
de baze de date pot avea un index primar (Primary)
Un tabel poate avea mai multe cmpuri care identific n mod unic fiecare nregistrare.
Indexarea dup fiecare din aceste cmpuri produce un index Candidate ndreptit la titlul de index
primar. Cu toate acestea, un tabel poate avea un singur index primar. Acesta particip la stabilirea
relaiilor ntre fiiere, i servesc ca valori de cutare n tabelele la care se face referire.
Filtrarea datelor
a) Filtrarea datelor prin intermediul unui index filtrat
Numrul nregistrrilor afiate poate fi limitat cu ajutorul unui index filtrat, care permite
accesul numai la nregistrrile care verific expresia filtrului.
- n Table Designer se selecteaz fila Index i se introduce o expresie de filtrare n cadrul
casetei Filter, pentru indexul care se dorete filtrat;
- se folosete clauza FOR a comenzii INDEX
Not: Clauza FOR a comenzii INDEX acioneaz ca un filtru pentru tabel, astfel nct cheile
de index sunt create n fiierul de index doar pentru acele nregistrri care verific expresia filtrului.
Exemplu:
USE Facturi
INDEX ON nrfact FOR nume="Agressione"
3
Fereastra de navigare va afia doar facturile emise ctre clientul al crui nume este Agressione.
b) filtrarea temporar a datelor
Este o metod util pentru a specifica o condiie temporar pe care nregistrrile din tabel
trebuie s le ndeplineasc pentru a fi accesibile.
Se utilizeaz comanda SET FILTER, cu sintaxa:
SET FILTER TO [Conditie]
Pentru a dezactiva filtrul din tabelul curent se lanseaz comanda SET FILTER TO fr nici o
expresie.
Exemplu:
USE Clieni
SET FILTER TO localitate="Suceava"
Not: Comanda accept pe post de filtru orice expresie logic Visual FoxPro. Dup execuia
comenzii, numai nregistrrile care ndeplinesc condiia de filtrare vor fi disponibile n tabel pentru orice
comand. Pentru fiecare tabel deschis se poate stabili un alt filtru.