Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Foxpro


Qdidactic » stiinta & tehnica » informatica » foxpro
Domeniul inregistrarilor - indicatorul de inregistrari



Domeniul inregistrarilor - indicatorul de inregistrari



1CLAUZELE DE DOMENIU


Exista comenzi care actioneaza asupra mai multor inregistrari ale unei b.d. Selectarea acestora se face specificand in comanda conditia de selectare. Multimea inregistrarilor care respecta conditia formeaza domeniul inregistrarilor la care se refera comanda respectiva. Domeniul inregistrarilor se specifica prin clauzele <domeniu>, FOR si WHILE incluse optional in comanda.
Clauza <domeniu> se va inlocui cu una din urmatoarele constructii:
ALL selecteaza toate inregistrarile din b.d.
NEXT <exp N> se refera la urmatoarele <exp N> inregistrari, incepand de la inregistrarea curenta, inclusiv;
RECORD <exp N> actioneaza numai asupra inregistrarii cu numarul <exp N>;
REST selecteaza inregistrarile incepand de la cea curenta, inclusiv, si pana la sfarsitul b.d.
Clauza FOR :
sintaxa : FOR <exp L>
se foloseste pentru selectarea inregistrarilor in functie de o conditie logica <exp L>. Se selecteaza acele inregistrari pentru care <exp L> este adevarata.
Clauza WHILE :
sintaxa : WHILE <exp L>
selecteaza inregistrarile in functie de conditia logica <exp L>. Se selecteaza acele inregistrari pentru care <exp L> este adevarata. Spre deosebire de clauza FOR care dupa gasirea unei inregistrari care nu respecta conditia, continua cu testarea celorlalte, clauza WHILE intrerupe testarea inregistrarilor cand gaseste o inregistrare ce nu respecta conditia data.
Daca se folosesc ambele clauze FOR si WHILE, prima care conteaza este clauza WHILE.
In expresia logica din clauza FOR si WHILE, trebuie sa apara o marime care sa varieze in functie de inregistrare. Aceasta trebuie sa depinda fie de numarul de inregistrare, fie de continutul acesteia.
exercitiu : Sa se afiseze toate inregistrarile al caror nume incepe cu o litera de dupa litera P.


2 INDICATORUL DE INREGISTRARI


Indicatorul de inregistrari este asociat unei b.d. la deschidere si este sters la inchiderea b.d. La deschiderea b.d. indicatorul de inregistrari va indica spre prima inregistrare, spre inregistrarea 1, daca ea exista.
Aflarea inregistrarii curente dintr-o b.d. (deci a continutului indicatorului de inregistrari) se face folosind functia RECNO().
sintaxa : RECNO( [<exp N>] )
Functia returneaza un rezultat numeric reprezentand numarul inregistrarii curente din b.d. deschisa in zona de lucru <exp N>. Daca <exp N> lipseste atunci functia se refera la b.d. activa.
ex.
use agenda
? recno ( )
1
list next 2
? recno( )
2
Schimbarea inregistrarii curente se realizeaza cu ajutorul comenzilor GOTO, SKIP.
Comanda GO sau GOTO pozitioneaza indicatorul de inregistrari pe o anumita inregistrare, dintr-o b.d. (GO si GOTO sunt identice).
sintaxa : GO | GOTO [RECORD] <expN1> [ IN <expN2>]
GO | GOTO TOP | BOTTOM [IN <expN2>]
Prima forma are ca efect pozitionarea indicatorului de inregistrari din b.d. sau din zona de lucru <expN2>, pe inregistrarea cu numarul <expN1>. Absenta clauzei IN determina referirea la b.d. activa.
Clauza RECORD este optionala, prezenta ei neavand nici un efect; ea se introduce pentru claritatea programului.
Forma a doua a comenzii se foloseste pentru pozitionarea indicatorului de inregistrari la extremele b.d la inceputul sau la sfarsitul acesteia ).
Clauza TOP se foloseste pentru pozitionarea pe prima inregistrare, pe cand BOTTOM determina pozitionarea pe ultima inregistrare a b.d.
Urmatoarele comenzi sunt echivalente:
go 1
goto 1
go record 1
go top
goto top in selected( )
Un alt tip de deplasare cu indicatorul de inregistrari este realizat cu ajutorul comenzii SKIP. Aceasta muta indicatorul de inregistrari peste un numar de inregistrari relativ la inregistrarea curenta.
sintaxa : SKIP [ <expN1> <expN2> ]
unde <expN1> reprezinta numarul de inregistrari peste care se sare (cu indicatorul de inregistrari ). Acesta poate fi atat un numar pozitiv (se sare spre o inregistrare cu un numar de inregistrare mai mare), cat si negativ(se sare spre o inregistrare anterioara celei curente).
<expN2> specifica zona de lucru in care este deschisa b.d.
Daca se sare peste ultima inregistrare a b.d., indicatorul de inregistrari va contine numarul de inregistrari din b.d.+1, iar functia EOF() va returna valoarea .T. ; in cazul saltului inaintea primei inregistrari, functia BOF() va returna valoarea .T.
Urmatoarele comenzi sunt echivalente :
skip
skip 1
skip in select()
goto record recno()+1
Functiile EOF() si BOF()
sintaxa : EOF( [<exp N>] )
BOF( [<exp N>] )
testeaza daca indicatorul de inregistrari se afla la sfarsitul , respectiv la inceputul b.d. active sau a celei specificate ca parametru.
Numarul de inregistrari dintr-o b.d. este dat de functia RECCOUNT()
sintaxa : RECCOUNT( [<exp N>] )
ex.:
use agenda
? recno( )
1
skip 3
? recno( )
4
go top
? recno( )
1
skip -2
? bof( )
.T.





Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright