Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

 
CATEGORII DOCUMENTE
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Modul de lucru indexat

fox pro



+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

\"Trimite
Tipuri de structuri

STRUCTURI REPETITIVE

Comenzi de tip SET

Modificarea directa a valorilor memorate in anumite campuri ale bazei de date

Actualizarea continutului unei baze de date cu date din alta baza de date

Stergerea datelor dintr-o baza de date

Functia meniu Window si Help a Visual FoxPro

Comenzi pentru scrierea de date in FOXPRO

Pozitionarea in baze de date

Functiile meniului principal ale Visual FoxPro

TERMENI importanti pentru acest document

Modul de lucru indexat

Prin indexare se intelege atasarea la un fisier de tip .DBF a unui fisier de tip .IDX, format din cuplul:

(<cheie-articol>, <pointer la articol sau grup de articole>)

Activarea indecsilor se face prin comanda

USE INDEX

Numarul maxim de fisiere index active la un moment dat pentru o baza de date este 7. Pentru instructiunile de vizualizare, listare si prelucrare a informatiilor din baza de date (DISPLAY, LIST etc.) numai primul index, considerat index principal, are importanta. Ceilalti indecsi activati prin USE au importanta numai pentru eventualele completari sau modificari ale bazei de date (comenzi de tipul APPEND, REPLACE, EDIT etc.)

Definirea indecsilor, adica crearea si asocierea unui fisier index unei baze de date se face prin comanda INDEX.

sintaxa: INDEX ON <expr> TO <fisier> [FOR <conditie>] [UNIQUE]

efect: Creaza un fisier de indecsi, pentru a face ordonarea logica a inregistrarilor. Inregistrarile din baza de date pentru care este creat fisierul de indecsi vor fi afisate si accesate in ordinea precizata de index, desi ordinea fizica a inregistrarilor nu este modificata.

Ordonarea este ascendenta, functie de cheia de indexare. Lungimea maxima a cheii de indexare este de 100 caractere; expresia care formeaza cheia poate contine un camp sau o combinatie de campuri ale bazei de date. Daca cheia este compusa din mai multe campuri ale bazei de date, se va aplica principiul ordonarii lexicografice, adica primul camp este considerat principal, iar inregistrarile vor fi ordonate dupa valorile sale. La valori egale ale primului camp, ordonarea are in vedere al doilea camp, etc. Cheia poate fi o expresie de tip sir de caracter, formata prin concatenarea unor campuri de tip Character si / sau Numeric (asupra campurilor Numeric se va aplica insa functia STR() ).

Observatii:

1.      Nu este admisa functia TRIM, deoarece aceasta modifica lungimea cheii.

2.      Parametrul "lungime" al functiilor $ si STR aplicat asupra unor campuri din baza de date trebuie sa fie o constanta.

3.      Folosind o cheie numerica, se poate obtine si o ordonare descendenta dupa valorile unui camp, prin specificarea cheii cu semnul - in fata.

4.      Pentru concatenarea campurilor de tip Numeric si /sau data calendaristica cu campuri de tip caracter, se vor folosi functiile STR, respectiv DTOC.

Fisierul de indecsi creat va avea extensia .IDX, si va fi folosit impreuna cu baza de date indexata prin intermediul sau.

        <expr> : Pe baza expresiei precizate in <expr> este construita cheia de indexare si fisierul de indecsi corespunzator bazei de date.

        TO <fisier> : Se specifica numele fisierului de indecsi, cu extensia .IDX, care va contine cheia de indexare definita anterior.

Parametri:

        FOR <conditie> : Numai inregistrarile care satisfac conditia precizata sunt indexate, fiind disponibile pentru afisare si acces ulterior.

        UNIQUE : Optiunea este destinata definirii cheilor unice (adica in index va fi inclus numai primul articol cu cheia data).

Exemplu:

        Pentru a indexa baza de date PERS.DBF dupa numele pacientilor:

index on NUME_PREN to IDPERS1

Dupa aceea, orice accesare a bazei de date se va face asupra inregistrarilor ordonate dupa indexul definit. De exemplu, listarea bazei de date se concretizeaza intr-o listare a inregistrarilor in ordinea alfabetica a numelor:

list

        Pentru a indexa baza de date PERS.DBF dupa data nasterii fiecarui pacient, dar numai pentru pacientii din judetul Iasi:

index on DATA_N to IDPERS2 for DOM_JUD = 'IS'

Dupa aceea, dand comanda de listare a bazei de date, vom obtine lista pacientilor din judetul Iasi, in ordine crescatoare a datelor de nastere aler acestora:

list

Orice modificare a bazei de date (a ordinii inregistrarilor) trebuie actualizata in fisierele de indecsi asociate. Astfel, pentru a reface fisierele de indecsi (inactive la momentul modificarii comenzii) trebuie folosita comanda REINDEX.

sintaxa: REINDEX

efect : Actualizeaza toate fisierele de indecsi deschise in zona curenta de lucru, conform cu modificarile aparute la nivelul inregistrarilor bazei de date.

Dupa ce se creeaza unul sau mai multi indecsi pentru o baza de date, este necesara folosirea acestora. La inchiderea bazei de date, fisierele de indecsi construite se inchid de asemenea, si nu se deschid automat la o deschidere ulterioara a bazei de date. Aceste fisiere se comporta ca niste entitati independente, cu care se lucreaza separat. Prin urmare, pentru a putea folosi fisierele de indecsi pe care le-am definit pentru o baza de date, sunt necesare comenzi specializate:

a) Comenzi pentru deschiderea fisierelor de indecsi pentru o baza de date:

Deschiderea fisierelor de indecsi se poate face in doua moduri diferite:

-         simultan cu deschiderea bazei de date: precizand fisierele de indecsi pe care dorim sa le deschidem, ca parametri suplimentari ai comenzii USE;

- daca baza de date este deja deschisa, fisierele de indecsi pot fi deschise cu comanda:

SET INDEX

sintaxa: SET INDEX TO [<lista fisiere index> | ?] [ORDER <expN> | <nume fisier index> [ASCENDING | DESCENDING]]

efect: Deschide unul sau mai multe fisiere de indecsi pentru a fi active in baza de date curenta, in acelasi mod ca parametrul INDEX din comanda USE (argumentele disponibile au aceeasi semnificatie). Folosirea comenzii SET INDEX TO fara a preciza nici un alt argument inchide toate fisierele de indecsi deschise in zona curenta de lucru.

Exemplu: Comenzile de lucru cu indecsi prezentate anterior sunt echivalente cu:

        use PERS

set index to IDPERS1, IDPERS2

(pentru a deschide ambele fisiere de indecsi, primul fiind in mod implicit activ)

        use PERS

set index to IDPERS1, IDPERS2 order 2 sau

use PERS

set index to IDPERS1, IDPERS2 order IDPERS2

(pentru a deschide ambele fisiere de indecsi, al doilea fiind activ)

        use PERS

set index to IDPERS1, IDPERS2 order 2 DESCENDING

(pentru a deschide ambele fisiere de indecsi; al doilea este activ, iar inregistrarile sunt accesate in ordine descrescatoare).

- daca avem mai multe fisiere de indecsi deschise pentru aceeasi baza de date, si dorim sa schimbam ordinea lor (sa activam un alt fisier de indecsi) se foloseste comanda:

SET ORDER

sintaxa: SET ORDER TO [<expN> | <nume fisier index>

[ASCENDING | DESCENDING]]

efect: Precizeaza care fisier de indecsi din lista de fisiere de indecsi disponibile sa fie activ pentru baza de date curenta (acesta va determina ordinea in care sunt accesate inregistrarile bazei de date).

        <expN> : Se va indica numarul de ordine al fisierului din lista de indecsi deschisi care urmeaza sa devina activ (aceasta lista fiind definita prin comanda USE sau SET INDEX TO;

        <nume fisier index> : Se va indica in mod explicit numele fisierului de indecsi care va deveni activ;

        ASCENDING | DESCENDING : Se precizeaza daca pentru fisierul de indecsi definit ca activ, inregistrarile vor fi accesate in ordine crescatoare sau descrescatoare.

Exemplu: Reluam exemplul anterior; presupunem ca baza de date a fost deschisa impreuna cu fisierele de indecsi asociate, iar lista de indecsi a fost definita, folosindu-se comanda:

use PERS index IDPERS1, IDPERS2

(primul fisier de indecsi va fi in mod implicit cel activ).

        Pentru a activa al doilea fisier de indecsi se poate folosi comanda:

set order to 2 sau

set order to IDPERS2

        Pentru a activa al doilea fisier de indecsi, inregistrarile urmand a fi accesate descrescator, se poate folosi comanda:

set order to 2 DESCENDING sau

set order to IDPERS2 DESCENDING

b) Comenzi pentru inchiderea fisierelor de indecsi pentru o baza de date:

CLOSE INDEXES

sintaxa: CLOSE INDEXES

efect: Inchide toate fisierele de indecsi deschise in zona curenta de lucru.

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1035
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou



Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024. All rights reserved