Sunteți pe pagina 1din 11

Noţiuni introductive SGBD Fox Pro. Partea II.

Alte comenzi FoxPro legate de exploatarea bazelor de date. Sortarea bazelor


de date.

Comanda Calculate

Permite calcularea valorilor minime, maxime, calculul mediei sau a sumelor


valorilor unor câmpuri.

Comanda calculate se va utiliza împreună cu una dintre următoarele funcţii:


min(), max(), sum(), avg().

Calculate Min(<nume_camp>) - returnează cea mai mică valoare a


înregistrărilor aflate în câmpul respectiv. Această valoare se afişează
pe ecran sau este stocată într-o variabilă. Câmpurile pot fi de tip
numeric, şir de caractere, dată calendaristică, etc.

Calculate Max(<nume_camp>) – returnează cea mai mare valoare a


înregistrărilor aflate în câmpul respectiv. Această valoare se afişează
pe ecran sau este stocată într-o variabilă. Şi în acest caz câmpurile pot
fi de tip numeric, şir de caractere sau dată calendaristică.

Calculate Sum(<nume_camp>) - returnează suma valorilor


înregistrărilor aflate în câmpul respectiv. Este necesar ca aceste
înregistrǎri sǎ fie de tipul numeric.

Calculate Avg(<nume_camp>)-în acest caz se va returna media


aritmeticǎ a valorilor din câmpul respectiv. Şi în acest caz este necesar
ca aceste înregistrǎri sǎ fie de tipul numeric.

În cazul în care se încearcă utilizarea datelor de tipul şir de caractere ca


parametri pentru funcţii care pot lucra numai cu tipul numeric se generează
un mesaj de eroare.

Comanda use
Comanda USE permite închiderea respectiv deschiderea unei baze de date.

Sintaxa comenzii: USE <nume_baza_de_date>

Daca baza de date este cea activă în memorie ea va fi închisă.

Daca baza de date nu era cea activă în memorie ea va fi deschisa.


Observaţie: Toate comenzile se referă la baza de date activă în memorie; La
un moment dat putem avea o singură bază de date (tabel) activă în memorie;

Comanda clear

Este şters conţinutul ecranului principal al aplicaţiei FOX PRO

Nu sunt şterse comenzile din fereastra de comenzi.(Command


window)

Comanda nu afectează în nici un fel înregistrările din baza de date.


(nu există nicio legătură între comenzile legate de ştergerea
înregistrărilor DELETE, PACK, ZAP şi comanda CLEAR)

Comanda list structure

Această comandă afişază pe ecranul principal al FOX PRO-ului


informaţii legate de baza de date activă (tabelul activ)

Vor fi astfel afişate structura articolului (nume câmp, tip, lungime


maximă.), va fi afişat numărul de înregistrări din baza de date, ultima
accesare a acestora, precum şi calea spre baza de date.
Exemplu
Considerăm un tabel cu următoarea structură a articolului:

C1- sir de caractere, lungime maximă 3

C2- numeric, lungime maximă 2

C3- logic, , lungime maximă 1 (implicit)

Comanda list structure va afişa

Comanda Display structure

Comanda are acelaşi rol cu list structure

Comanda sort

Pentru a putea sorta elementele unei mulţimi este necesar ca pe


mulţimea respectivǎ să avem definită o relaţie de ordine.

Sortarea presupune aranjarea elementelor respectivei mulţimi fie în


ordine crescătoare, fie în ordine descrescătoare.

In cazul câmpurilor de tipul şir de caractere se va utiliza drept criteriu


de sortare reprezentarea caracterelor în codul ASCII.
Ĩn cazul unui tabel (bază de date) sortarea presupune rearanjarea
înregistrărilor în funcţie de valorile unuia sau a mai multor câmpuri,
aceste câmpuri putând fi sortate atât crescător cât şi descrescător.

In urma operaţiei de sortare se va crea o noua baza de date cu un


nume diferit de baza de date sortată.

Pentru a putea vizualiza rezultatul sortării este necesar să închidem


baza de date iniţială şi să deschidem noua bază de date creată în
momentul sortării (aceste operaţii vor fi realizate prin intermediul
comenzii USE)

Sintaxa comenzii SORT este urmatoarea:


SORT TO <baza_sortata> ON <nume-câmp1><parametru>, ..., <nume-câmp n>
1. <baza-sortată> reprezintă numele bazei de date care se creează în
momentul sortării

2. <nume-camp 1, n> reprezintă câmpurile din baza de date iniţială după


care se realizează sortarea
3. <parametru> poate avea una din urmatoarele valori: /a, /d

/a = ASCENDING – se utilizează pentru sortarea crescǎtoare (aranjarea în


ordine crescatoare a valorilor din campul respectiv)
/d=DESCENDING – precizeaza ca sortarea se realizeaza în ordine
descrescatoare a valorilor din campul respectiv.

Daca nu este specificat nici unul din cei doi parametri sortarea se consodera
implicita crescătoare.

Exemplul 1

Se consideră baza de date cu următoarea structură a articolului:

C1- sir de caractere, lungime maximă 3


C2- numeric, lungime maximă 2
C3- tipul logic, lungime maximă 1 (implicit)
Baza de date există pe hard disc şi este salvată cu numele de baza1. Se cere:

Crearea unei baze de date cu numele baza1s sortată crescător dupa valorile
câmpului c1 (cel care conţine date de tipul şir de caractere). Iniţial baza1
(cea nesortată) conţine următoarele înregistrări:

use baza1 (este deschisă baza nesortată)


sort to baza1s on c1/a (se creează baza1s sortata crescător dupa valorile campului
c1)
use baza1s (este deschisă baza sortată)
list (este listat conţinutul tabelului sortat)
Exemplul 2.
Se doreşte ca această bază de date baza1 (cu structura descrisă mai sus) să
fie sortată în felul urmator:

-crescător după câmpul C2

-descrescător după câmpul C1


Se va crea baza de date cu numele baza2s, succesiunea de comenzi fiind
următoarea:

use all (închide baza de date activă)


use baza1

sort to baza 2s on c2, c1/d

use baza1

use baza2s

browse

Ca rezultat se va afişa pe ecran:


Al doilea criteriu de sortare este luat în considerare numai în cazul în care
avem valori egale în primul câmp precizat ca criteriu de sortare (în acest caz
înregistrările care au în câmpul C2 valoarea 23 sunt afişate în ordinea
descrescătoare a valorilor din câmpul C1 ;

Daca toate valorile înregistrărilor din primul câmp sunt diferite, al doilea
criteriu nu intervine deloc.
Observaţie:
SORT TO BAZA2S ON C1, C2/D
SORT TO BAZA2S ON C2/D, C1
Rezultatul execuţiei celor două comenzi diferă

Comanda Quit

Comanda QUIT se utilizează pentru a ieşi din FoxPro

5.3.4 Realizarea formularelor, interogări şi rapoarte

Un formular este o fereastră în care se găsesc mai multe elemente care


permit accesarea si modificarea (actualizarea) înregistrărilor dintr-o bază de
date . Elementele dintr-un formular pot fi:

Etichete – (labels) Etichetele pot conţine text. Ĩn mod implicit textul


din etichetele prezente în formele create în FOX se va referi la numele
câmpurilor din baza de date activă.

Ferestre de editare – (text box), acestea conţinând înregistrările din


baza de date.
Butoane de comandă – (command button), fiecare dintre aceste
butoane fiind legat de o acţiune posibilă în contextul utilizării bazei de
date.

Elementele comune – oricărei ferestre din Microsoft Windows


(butoane de maximizare, minimizare, închidere)

Etichete TextBox Butoane de comandă

Crearea formularelor se poate realiza foarte rapid urmând o succesiune de


paşi cu selectarea pentru fiecare etapă a opţiunilor dorite.
Presupunând creatǎ o baza de date, succesiunea paşilor care anexează un
formular este urmatoarea:

Din meniul TOOLS se selectează opţiunea WIZARDS.

Din lista care apare se selectează FORM

În continuare se selectează în acest exemplu FORM WIZARD


Apare un ecran din care se selectează acel tabel de care va fi legat
formularul.
Sunt selectate câmpurile din tabel care vor fi vizibile în FORM.
Următoarea etapă permite doua acţiuni:

se alege stilul în care va fi realizat formularul

se precizează setarea butoanelor de comanda

Se trece la următoarea etapă prin apăsarea opţiunii NEXT . În această noua


fază sunt precizate :

câmpurile după care va fi sortată baza de date (unul sau mai multe
câmpuri, cu posibilitatea sortării crescătoare sau descrescătoare).

câmpul după care se realizează indexarea bazei de date.

Următoarea etapă se referă la precizarea numelui formularului şi salvarea


acestuia. Dacă nu se precizează alt nume formularul va avea implicit numele
tabelului de care a fost legat şi extinsia SCX. Tot în această etapă se poate
opta fie pentru lansarea imediată a formularului , fie pentru salvarea sa în
vederea unei folosiri ulterioare.

OBS. Pentru a lansa în executie un formular salvat se va folosi în fereastra


de comenzi:

DO FORM nume.SCX

Pe formular avem următoarele butoane de comandă:

Butonul marcat cu textul TOP. Acesta afişează în formular prima


înregistrare din baza de date.

Obs. Prima înregistrare rezultată în urma eventualei sortări, nu prima


înregistrare din baza de date precizată la începutul creării
formularului.

Butonul marcat cu textul BOTTOM. Butonul afişează în formular


ultima înregistrare
Butonul marcat cu textul NEXT Acest buton afişează următoarea
înregistrare din baza de date. Butonul nu este activ daca suntem
poziţionaţi pe ultima înregistrare.

Butonul marcat cu textul PREV Acest buton afişează înregistrarea


anterioară din baza de date.

Butonul marcat cu textul ADD – permite adăugarea unei noi


înregistrări în baza de date.

Câmpurile trebuie să respecte structura articolului;

Adăugarea ţine cont de opţiunea sortării bazei de date;

Butonul marcat cu textul EDIT – Butonul permite modificarea


valorilor înregistrărilor din baza de date

Butonul marcat cu textul DELETE - butonul realizează ştergerea


înregistrărilor din baza de date.

Butonul marcat cu textul FIND - determină apariţia unui ecran în care


se pot construi expresii. Acest ecran are următoarea structură:

FIELD OPERATOR VALUE

FIELDS – poate fi orice câmp din baza de date activă;

OPERATOR se referă la operatori, aceştia putând fi:

Operatori relaţionali (=, >, <, <=)

Operatorul Between – permite selectarea câmpurilor cuprinse între


două valori. În acest caz în dreptul câmpului VALUE sunt date două
valori separate prin virgulă.

Operatorul Contains – este utilizat preponderent pentru găsirea


înregistrărilor ( din câmpuri de tipul şir de caractere ) care conţin o
anumită literă sau un grup de litere.

In dreptul câmpului VALUE sunt introduse valorile după care se


realizează căutarea.
OBS. Ĩn cazul câmpurilor de tipul şir de caractere, spre deosebire de
sintaxa de la comenzile BROWSE, LIST, EDIT, valorile căutate nu se
introduc între ghilimele duble (”).

EXIT Se iese din formular.

S-ar putea să vă placă și