Documente Academic
Documente Profesional
Documente Cultură
Indexarea tabelelor
Când se doreşte operarea asupra înregistrărilor unui tabel într-o anumită ordine, se folosesc
indecşii drept mecanisme de ordonare. Se pot crea şi utiliza mai multe chei index pentru acelaşi tabel şi
se poate lucra cu înregistrările ordonate diferit funcţie de cerinţele aplicaţiei. Pe baza indecşilor se pot
crea legături permanente între tabele care să ofere acces exact la înregistrările dorite.
Un index în Visual FoxPro este un fişier care conţine pointeri ordonaţi în mod logic de
către o cheie de indexare. Indexul nu schimbă ordinea fizică a înregistrărilor în tabel (fişierul .dbf).
Tipuri de indexuri
Exemplu:
OPEN DATABASE Parteneri
USE Clienti && se deschide tabelul Clienti
1
INDEX ON address TAG address
INDEX ON company TAG company OF custcdx
După generarea cheilor de index pentru un tabel, datele acestuia pot fi accesate şi afişate în
ordinea dorită prin simpla alegere a cheii de index potrivite. Pentru a alege o anumită cheie pe post de
cheie de sortare a tabelului se va folosi comanda SET ORDER cu sintaxa :
2
SET ORDER to nume_etichetă
Exemplu:
USE Angajaţi
SET ORDER TO nume
BROWSE
Secventa de mai sus deschide o fereastră BROWSE care afişează înregistrările tabelului Angajaţi
în ordinea alfabetică a numelor.
Se poate renunţa la indecşii care nu mai sunt necesari, prin ştergerea etichetei din fişierul .cdx
sau prin ştergerea fişierului .idx în cazul indecşilor independenţi.
a) ştergerea unei etichete din fişierul .cdx
- în Table Designer se deschide fila Index, se selectează un index şi se şterge (pentru fişierele
structurale, ale căror etichete apar în Table Designer)
Performanţele unei aplicaţii se pot îmbunătăţi prin crearea unor indecşi bazaţi pe expresii.
Acestea pot fi simple sau complexe, funcţie de sarcinile pe care trebuie să le îndeplinească.
a) Indexarea prin expresii simple
Expresiile de index simple sunt indecşi bazaţi pe un singur câmp sau pe două sau mai multe
câmpuri de tip Character care, prin concatenare, formează o cheie multi-câmp.
Exemplu: In tabelul Clienţi se poate crea un index pe baza expresiei: localitate + cod_cli.
La o navigare prin tabelul sortat după această etichetă de index înregistrările
corespunzătoare clienţilor vor fi ordonate după localitate, apoi după codul alocat clientului.
b) Folosirea valorilor null în cadrul expresiilor de index
Se pot crea indecşi pentru câmpurile care conţin valori null. Expresiile de index evaluate ca
.NULL sunt inserate în fişierele .cdx înaintea valorilor non-null.
Filtrarea datelor
3
Fereastra de navigare va afişa doar facturile emise către clientul al cărui nume este Agressione.
Intrebări si exercitii
1. Pe baza analizei structurii tabelelor bazei de date create anterior, să se determine ce câmpuri
pot fi folosite pentru crearea unui index de tip:
- regular;
- candidat;
- primar.
Să se construiască aceste tipuri de indecşi.
2. Folosiţi cel puţin într-un un tabel indexarea după expresii ( expresie bazată pe minim 2
câmpuri de tip Character concatenate). Vizualizaţi rezultatele (BROWSE).
3. Creaţi un index filtrat în tabelul materiale care să realizeze afişarea în ordine alfabetică a
materialelor al căror nume începe cu literele “A”, “B”, şi “C”.
In acest scop se vor introduce înregistrări care să satisfacă aceste condiţii.
Indicaţie: selecţia unui subşir al unui şir de caractere se face cu funcţia :
SUBSTR (şir_original, poz_start, nr_caract)
4. Impuneţi şi revocaţi filtre temporare asupra datelor din tabelele “Materiale” respective
“Gestiuni”.