Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Indicatorul de inregistrari
Lucrul cu datele din tabele se realizeaza la nivel de inregistrare, in sensul ca nu putem adauga, modifica sau sterge din tabela decat cate o inregistrare completa. Exista insa comenzi care actioneaza asupra mai multor inregistrari ale unei tabele. Desigur ca intern sistemul de gestiune preia si prelucreaza inregistrarile pe rand, una cate una, dar utilizatorul nu vede acest lucru. El da comanda o singura data, specificand intr-un anumit fel inregistrarile pe care le doreste a le prelucra si apoi SGBD-ul se ocupa de restul.
Pentru a sti care este inregistrarea asupra careia va actiona o anumita comanda, FoxPro foloseste in cadrul fiecarei zone de lucru cate o variabila specifica, ce indica numarul inregistrarii respective, variabila numita indicatorul de inregistrari. |
Acesta este asociat unei tabele de deschidere si este eliminat la inchiderea ei. Indicatorul de inregistrari este specific unei tabele deschisa intr-o zona de lucru, deci vom avea atatea indicatoarea de inregistrari, cate zone de lucru sunt ocupate cu tabele.
Indicatorul de inregistrari contine numarul de inregistrari curente, intr-o tabela existand la un moment dat o singura inregistrare curenta. Vom spune ca indicatorul de inregistrari "indica spre" inregistrarea curenta. La deschiderea unei tabele indicatorul de inregistrari va "arata" spre prima inregistrare a tabelei, cea cu numarul 1 (daca ea exista).
Indicatorul de inregistrari este accesibil utilizatorului prin comenzi ale limbajului. Comanda GOT, urmata de o valoare numerica, determina pozitionarea indicatorului de inregistrari al zonei de lucru curente pe inregistrarea cu numarul dat de valoarea respectiva.
Aflarea inregistrarii curenta dintr-o tabela, deci a continutului indicatorului de inregistrari, se face folosind functia RECNO ( ), iar numarul total de inregistrari dintr-o tabela este returnat de functia RECCOUNT ( )
USE stocuri ? RECNO () ? RECCOUNT () GOTO 2 ? RECNO () USE |
Doua clauze importante ale comenzii GOTO pot fi folosite pentru pozitionarea indicatorului de inregistrari ale unei tabele pe prima sau ultima inregistrare si anume BOTTOM si respectiv TOP
USE stocuri
GOTO 2 && inregistrarea curenta va fi 2
? RECNO ()
GOTO RECORD RECNO ()+1
NOTE pozitionarea pe inregistrarea urmatoare (inregistrare curenta +1)
DISPLAY NEXT 1
GOTO TOP &&pozitionare pe inregistrare 1
? RECNO ()
GOTO BOTTOM &&pozitionare pe ultima inregistrare
? RECNO ()
USE
Daca tabela este indexata (ordonata logic dupa un anumit criteriu), prima si respectiv ultima inregistrare pot sa nu fie aceleasi cu cele date de ordinea fizica a inregistrarilor. Clauzele TOP si BOTTOM tin cont de ordinea logica a inregistrarilor (nu cea fizica), daca acestea sunt ordonate prin indexare. |
Un alt tip de deplasare de-a lungul tabelei cu indicatorul de inregistrari este realizat cu ajutorul comenzii SKIP. Aceasta muta indicatorul peste un numar de inregistrari relativ la inregistrarea curenta, numar dat de expresia numerica ce urmeaza comenzii (de asemenea, deplasarea tine cont de ordinea logica a inregistrarilor - a se vedea observatia anterioara).
USE stocuri ? RECNO () SKIP 2 DISPLAY RECORD RECNO () SKIP -1 ? RECNO () USE |
Functiile BOF ( ) si EOF ( ) testeaza daca indicatorul de inregistrari se afla la inceputul, respectiv la sfarsitul tabelei active. Rezultatul acestora este de tip logic.
Copyright © 2024 - Toate drepturile rezervate