Sunteți pe pagina 1din 15

CURS 2- VISUAL FOXPRO

EXPLOATAREA BAZELOR DE DATE


n mod tipic, bazele de date si tabelele aferente se creaza o singura data . Dupa
aceea, utilizatorul si programatorul exploateaza datele de acolo (de fapt pentru asta
se creaza baza de date). Operatiile uzuale sunt : deschiderea bazei de date
656y248g , afisarea completa sau partiala a datelor, modificarea sau stergerea
nregistrarilor din tabele, afisarea ordonata a lor, cautarea unor date n tabele, etc.
Pentru aceasta , SGBD pune la dispozitie o serie de comenzi specifice pe care le
vom discuta mai departe.
1. Deschiderea bazelor de date si a tabelelor
Bazele de date si elementele componente, la nivelul sistemului de operare sunt
memorate n fisiere. Conform regulilor sistemului de operare, dupa crearea unui
fisier, acesta poate fi prelucrat daca este deschis. Aceasta regula o ntlnim si la
prelucrarea bazelor de date . Prin urmare, pentru a putea opera cu datele din b.d.
si din tabele va trebui sa le deschideti.
Deschiderea bazei de date 656y248g se poate face n mai multe moduri :

se selecteaza meniul File, comanda Open, apoi se selecteaza categoria


Database si n final se alege directorul si baza de date respectiva.

se tasteaza ( n fereastra de comanda ) OPEN DATABASE .Comanda poate fi


urmata de numele bazei de date sau fara nume, n acest caz se ncepe un dialog
ntre utilizator si computer pentru selectarea bazei de date .
Observatie: 1. Se pot deschide mai multe baze de date simultan.
2. Dupa deschidere, constructorul de tabel nu este totdeauna afisat . Afisarea
explicita a acestuia se poate face cu MODIFY DATABASE.
Dupa deschiderea bazei de date 656y248g , trebuie deschise tabelele componente
pentru a avea acces la date. Deschiderea unui tabel se face n mod similar :

se selecteaza meniul File, comanda Open, apoi se selecteaza categoria Table


si n final se alege directorul si tabelul de date respectiv.

se tasteaza ( n fereastra de comanda ) USE nume sau USE ? .Comanda


poate fi urmata de numele tabelului sau de ?, n acest caz se ncepe un dialog ntre
utilizator si computer pentru selectarea tabelelor.
Tabelele libere se pot deschide n mod similar.
De foarte multe ori utilizatorul doreste sa lucreze ( simultan ) cu mai multe
tabele. Din pacate , daca le deschide pe rnd , numai ultimul ramne accesibil,
celelalte nchizndu-se automat. Pentru astfel de situatii, exista mai multe zone de
lucru identificate prin numere ( n numar de 32767) , n fiecare zona putndu-se
deschide un tabel mpreuna cu fisierele index asociate. Pentru a deschide un tabel
(liber sau legat de baza de date) ntr-o zona de lucru se poate tasta n fereastra de
comanda :

SELECT n

USE numetabel
sau

USE numetabel IN n [ALIAS pseudonume]

unde n reprezinta numarul zonei de lucru.


Selectarea zonei de lucru se poate face dupa aceea prin comanda SELECT n .
De asemenea, deschiderea tabelelor n zone de lucru se mai poate face si din
meniul Window, optiunea Data Session, dupa care apare o fereastra numita Data
Session cu ajutorul careia se selecteaza tabelele n zonele de lucru, ca n figura de
mai jos :

Observatie : a. Comenzile care se tasteaza n fereastra de comanda se pot folosi si


n sursele de program .
b.
Se poate deschide un tabel de mai multe ori folosind comanda Use nume In 1
AGAIN.
c.
Daca baza de date sau tabelul nu se gasesc n directorul curent ( care este de
obicei directorul n care este instalat Visual Foxpro ), se poate scrie calea completa
ce permite localizarea lor. De asemenea, se poate schimba directorul de lucru
folosind comanda SET DIRECTORY TO nume. De exemplu, se poate tasta SET
DIRECTORY TO C:\Salariati.
d.
O baza de date se nchide cu comanda CLOSE DATABASE , iar un tabel deschis
ntr-o zona cu USE sau USE IN zona. De asemenea, nchiderea tabelelor se poate
face si cu comanda Close Table.
e.
Accesarea cmpurilor bazelor de date deschise n mai multe zone de lucru, se
poate face si prin numele bazei de date urmat de punct si numele cmpului :
Angajati.Nume sau Functii.Cod .
Trebuie retinut faptul ca prelucrarea datelor ntr-o tabela se face la nivel de
nregistrare, n sensul ca la un moment dat este prelucrata o singura nregistrare .
Din acest motiv , sistemul tine evidenta nregistrarii curente, a celei care se
prelucreaza, folosind un indicator de nregistrare . Acest indicator care i spune
sistemului cu ce nregistrare sa lucreze sau unde sa modifice date , este la
pozitionat la deschiderea tabelului la nceput. El este mutat de obicei pe
nregistrarea urmatoare, dupa o prelucrare a nregistrarii curente. Totusi indicatorul
poate fi mutat explicit cu ajutorul comenzilor GOTO si SKIP astfel :
GOTO n

(se pozitioneaza la nceputul nregistrarii n) sau

GOTO TOP (se pozitioneaza la nceputul tabelului) sau


GOTO BOTTOM (se pozitioneaza la sfrsitul tabelului )

urmate eventual de optiunea IN tabela ce precizeaza explicit la care tabel se


aplica,
respectiv SKIP n IN tabela care sare peste n nregistrari ( n este pozitiv sau
negativ).
Atentie, daca este deschisa o fereastra de editare ( cu Browse, cu Append, cu Edit
se poate face pozitionarea manuala sau cu ajutorul comenzii Goto Record din
meniul Table. exista si o functie , numita RecNo() , care poate fi folosita pentru a
numarul nregistrarii curente .
2. Adaugarea de noi nregistrari n tabele
Desi utilizatorul poate introduce n momentul crearii tabelului nregistrari, exista o
comanda dedicata pe care o poate apela n fereastra de comanda sau n program :
APPEND
De asemenea, exista doua comenzii, folosite mai ales n programe , ce permit
adaugarea de nregistrari goale : APPEND BLANK si INSERT BLANK .
3. Editarea continutului tabelelor . Comenzile BROWSE si EDIT.
Utilizatorul are la dispozitie o comanda universala, numita BROWSE, care poate fi
folosita pentru realizarea diferitelor operatii de prelucrare asupra datelor din tabele.
Comanda poate fi pornita din meniul rapid (ce se obtine apasnd butonul dreapta
pe obiectul tabel) fie tastnd comanda n fereastra de comanda.sablonul general de
utilizare (simplificat):
BROWSE [lista cmpuri] [WIDTH latime] [FOR conditie ] [NOEDIT] [NODELETE]
[NOAPPEND] .
Se observa aparitia unor argumente suplimentare , care nu sunt obligatorii : lista
cmpuri permite afisarea n tabel doar a anumitor coloane, Width precizeaza
latimea maxima a coloanelor, iar celelalte optiuni protejeaza tabelul la operatiile
precizate.
Comanda permite afisarea datelor sub forma tabelara, apoi permite modificarea
valorilor din cmpuri ( cu comenzile de editare cunoscute). De asemenea, se pot
adauga nregistrari noi tastnd CTRL +Y sau alegnd comanda APPEND NEW
RECORD din meniul TABLE ( atentie meniul Table apare doar cnd deschideti
fereastra BROWSE):

Adauga o nregistrare noua

Marcheaza pentru stergere o nregistrare

sterge fizic nregistrarea

Se pot sterge, de asemenea, nregistrari din tabel. stergerea nregistrarilor


se face n doua etape : marcarea lor si stergerea lor fizica . Marcarea se face
tastnd CTRL+T (dupa ce am pozitionat indicatorul pe aceea nregistrare- cu tastele
cursor, PgUp, PgDown). Dupa cum se observa din figura de mai sus, se poate folosi
si comanda DELETE RECORDS , din meniul TABLE. stergerea fizica (deci pierderea
definitiva a acelei nregistrari ) se face fie tastnd comanda PACK n fereastra de
comanda, fie alegnd comanda REMOVE DELETED RECORDS, din meniul TABLE.
Comanda BROWSE are o varianta similara numita EDIT, ce permite acelasi lucru.

4. Afisarea continutului unui tabel - comanda LIST.


Sistemele pentru baze de date ( inclusiv Visual Foxpro) au foarte multe instrumente
de afisarea a datelor. Am prezentat o metoda simpli , tabelara, cu Browse . De
asemenea , exista o varianta , tot simpla si rapida , pe care utlizatorul o poate folosi
rapid pentru a afisa continutul tabelului, varianta mostenita din versiunile mai vechi
de FoxPro. Comanda respectiva se numeste LIST (sau DISPLAY) si se poate folosi
sub urmatoarea forma :
LIST [lista cmpuri] [grup nregistrariri] [FOR conditie] [WHILE conditie]
[TO PRINTER|TO FILE][NOCONSOLE]
n mod implicit se afiseaza toate cmpurile, n schimb se pot preciza cmpurile care
se vor afisa . Domeniu precizeaza grupul de nregistrari care se vor afisa, domeniu
putnd lua urmatoarele valori: ALL, NEXT n, RECORD n, REST . Optiunile FOR si
WHILE, permit filtrarea nregistrarilor conform conditiei precizate. Ultimele optiuni
permit afisarea datelor si la imprimanta sau n fisier .
Exemple: 1. USE cursanti
LIST nume, prenume
2. USE cursanti
DISPLAY

3.

USE cursanti

LIST FOR Datan >


4.

USE cursanti

LIST Nume, Prenume TO PRINTER NOCONSOLE


5.

USE cursanti

LIST Nume,Prenume,Medie To Lista.txt


Trebuie totusi sa mentionam ca exista o solutie mult mai buna, ce se foloseste mai
ales pentru sisteme informatice (adica pentru aplicatii). Ea consta n folosirea
rapoartelor (subiectul se va discuta mai trziu).
6.

stergerea nregistrarilor din tabele -comanda DELETE

Alaturi de adaugare si modificare, stergerea reprezinta una din operatiile des


ntnite n lucrul cu tabelele. stergerea este folosita pentru a elimina datele unei
nregistrari din tabel. stergerea unei nregistrari se poate face fie la nivel logic
( nregistrarea nu este propriu-zis stearsa, ci este marcata pentru stergere), fie la
nivel fizic (nregistrarea este stearsa fizic din tabela). Am prezentat deja o solutie cu
BROWSE. Exista, nsa , o comanda dedicata numita DELETE, ce se poate tasta n
fereastra de comanda sau scrie n programe:
DELETE [grup nregistrari] [FOR conditie] [WHILE conditie].
n mod implicit, daca nu se foloseste nici un parametru, se va marca pentru
stergere nregistrarea curenta. Puteti sa precizati grupul de nregistrari prin
domeniu (domeniu poate lua acelasi valori cu cele precizate anterior la comanda
LIST ) sau prin conditii. Dupa marcarea nregistrarilor , ele pot fi sterse definitiv din
tabel cu ajutorul comenzii PACK (tastata n fereastra de comanda).
Exemple: 1. USE cursanti
DELETE
2.

USE cursanti

DELETE FOR Datan >


PACK.
3.

USE cursanti

DELETE RECORD 3
PACK.
Observatie: O nregistrare marcata pentru stergere, poate fi recuperata cu ajutorul
comenzii RECALL sau cu ajutorul optiunii Recall Records din meniul Table (vezi figura
anterioara). nsa, daca s-a aplicat comanda Pack, nregistrarile nu mai pot fi
recuperate.

7.

Modificarea continutului unei tabel.

Modificarea valorilor din cmpuri se poate face n mai multe moduri. O solutie , este
oferita de comnezile BROWSE si EDIT. De asemenea, si comanda APPEND permite
modificarea valorilor din cmpuri. Totusi exista o comanda dedicata, folosita mai
ales n programe, cu ajutorul careia se modifica valorile din cmpuri . Comanda se
numeste REPLACE si are sintaxa :
REPLACE [domeniu] cmp1 WITH valoare1, ., cmpn WITH valoaren
[FOR conditie] [WHILE conditie]
Comanda nlocuieste vechea valoare din cmpurile precizate cu o valoare noua.
Daca nu se precizeaza domeniu, comanda se aplica doar la nregistrarea curenta ,
altfel la grupul precizat de domeniu.Clauzele For si WHILE permit filtrarea grupului
de nregistrari prin conditii .
Exemple: 1. USE cursanti
REPLACE ALL MEDIE WITH (Obiect1+Obiect2)/2
2.

USE salariati
REPLACE ALL Salariu WITH 1.5 * Salariu
REPLACE ALL Sanatate WITH 0.07 *Salariu

3.

USE cursanti

REPLACE ALL Situatie WITH 'PROMOVAT' FOR Ob1>=5 AND Ob2>=5


n programe, mai ales cnd se fac calcule , comanda este foarte utila, deoarece
modificarea unui cmp nu se poate face direct prin atribuire ci doar cu REPLACE.
O alta tehnica de modificare a continutului nregistrarilor este data de
comenzile SCATTER si GATHER . Prin intermediul acestor doua comenzi se poate
realiza transferul ntre nregistrarea curenta a tabelei sau un set de variabile.
Comanda GATHER realizeaza transferul de la tablou sau de la setul de
variabile la tabela, iar SCATTER realizeaza transferul invers. Comanda GATHER are
sintaxa:
GATHER FROM tablou
GATHER MEMVAR
prima preia datele din tabloul specificat n nregistrarea curenta , iar cea de-a doua
forma foloseste ca sursa de date un set special de variabile, cu acelasi nume ca si
cmpurile tabelei. Accesul la setul de variabile (creat cu comanda SCATTER cu
clauza MEMVAR) se face prin constructia : m. nume variabila. Comanda GATHER
poate contine clauza FIELDS , urmata de o lista de cmpuri care se vor copia n
nregistrarea curenta a tabelei active . Daca se doreste si copierea cmpurilor
memo, trebuie adaugata si optiunea MEMO.

Comanda SCATTER, este opusa comenzii anterioare, ea copiind cmpurile


nregistrarii curente din tabela activa ntr-un tablou sau ntr-un set de variabile.
Sintaxa comenzii este :
SCATTER TO tablou
sau
SCATTER MEMVAR
si aici se pot folosi clauzele FIELDS si MEMO, cu acelasi scop.
6. Cautarea datelor -comanda LOCATE
O alta operatie utila, mai ales n cazul tabelelor mari, este cea de cautare a
unei nregistrari care respecta o anumita conditie. Comanda este LOCATE si are
sintaxa :
LOCATE FOR conditie [domeniu] [WHILE conditie ]
Ea ncearca localizarea primei nregistrari din tabel ce verifica conditia din FOR .
Grupul de nregistrari n care se cauta , este cel dat de domeniu si WHILE, implicit
fiind ALL. Daca aceasta nregistrare exista, indicatorul de acces la fisier se va
pozitiona pe aceasta. Utilizatorul poate afla daca nregistrarea exista, folosind
functia FOUND(), functie care returneaza TRUE n cazul gasirii sau FALSE n caz de
esec. Se poate continua cautarea , n ideea de gasi alte nregistrari asemanatoare,
cu ajutorul comenzii CONTINUE.
Exemplu :
USE cursanti
LOCATE FOR Nume='POPESCU'
IF Found()
DISP
ENDIF
8.

Calcule statistice cu datele din tabele- comenzile SUM, COUNT

Pe lnga cautarea si consultarea datelor din tabele, n aplicatiile practice avem


nevoie si de calcule cu valorile cmpurilor. De exemplu, ne intereseaza sa stim care
este totalul salariilor brute sau ct este impozitul total ce trebuie virat. De
asemenea, ne intereseaza cti angajati nu sunt platitori de impozit. Toate aceste
lucruri constau de fapt n operatii statistice asupra nregistrarilor din tabele :
nsumarea valorii cmpurilor din tabele, contorizarea nregistrarilor ce ndeplinesc o
anumita proprietate . Exista comenzii dedicate ce pot sa dea raspuns la ntrebarile
anterioare.
Calcularea numarului de nregistrari care respecta o anumita conditie se realizeaza
cu ajutorul comenzii COUNT , cu sintaxa :
COUNT [domeniu] FOR conditie TO variabila

Exemplu : USE ANGAJAI


COUNT FOR Impozit=.T. TO Nr
?Nr
O alta operatie utila este aceea de nsumare a valorilor unor cmpuri
numerice. Pentru aceasta folosim comanda SUM cu sintaxa :
SUM [domeniu] expresie1, expresie2,., expresien TO v1,v2,.,vn [FOR conditie]
Exemplu :a. USE ANGAJAI
SUM VenitBrut TO TotalBrut
?TotalBrut
b. USE ANGAJAI
SUM Impozit TO TotalImpozit FOR Tip_Ang='T'
?TotalImpozit
Exista o varianta particulara a comenzii SUM , numita AVERAGE, ce se poate folosi
pentru a calcula media aritmetica a unor cmpuri.

Exemplu :a. USE ANGAJAI


AVERAGE SalBrut TO SalariuMediu
?SalariuMediu

De asemenea, pentru calcule statistice mai complexe, exista o comanda


mai complexa numita CALCULATE . Aceasta poate fi urmata de o lista de expresii
care sunt calculate pe baza datelor din tabela. n aceste expresii pot fi incluse o
serie de functii statistice, cu urmatoarele semnificatii:
AVG(expresie )- calculeaza media aritmetica a valorilor expresiei respective
(pentru fiecare nregistrare ), expresie care poate contine cmpuri numerice ale
tabelei.
CNT() - returneaza numarul de nregistrari prelucrate.
MAX(expresie), respectiv MIN (expresie) - returneaza expresia cea mai
mare , respectiv cea mai mica.
SUM(expresie) - calculeaza suma valorilor expresiilor .
Sintaxa generala a lui CALCULATE este :
CALCULATE functii TO VARIABILE [FOR conditie]

Exemplu :a. USE ANGAJAI


CALCULATE MAX(VenitBrut) TO MAXVenitBrut
?MAXVenitBrut

8. Ordonarea datelor din tabele :


Nimeni nu se asteapta ca utlizatorii sa introduca datele gata sortate, gata
aranjate. Din acest motiv, de multe ori avem nevoie sa vedem datele ntr-o anumita
ordine. O alta operatie uzuala, regasirea informatiilor, se poate face mult mai
comod n listele ordonate.
S.G.B.D.-ul Visual Foxpro ofera doua solutii legate de ordonarea unei tabele
:

ordonarea fizica a tabelei - consta n crearea unei noi tabele cu datele din
prima tabela , tabela ordonata dupa un criteriu precizat

indexarea unei tabele - aceasta consta n crearea unui fisier suplimentar ,


numit index, care sa contina informatii cu privire la ordinea nregistrarilor tabelei.
Tabela ramne fizic n aceeasi ordine, dar este "vazuta" si accesata conform ordinii
din fisierul index .
Sortarea fizica a tabelelor :
Ordonarea fizica si crearea unei noi tabele ordonate se face cu ajutorul
comenzii SORT. Aceasta are sintaxa :
SORT [domeniu] ON cmp1 /A sau /D , ., cmpn /A sau /D TO TabelaNoua
FOR conditie
Exemplu : a. USE ANGAJAI
SORT On Nume TO LAngajati
USE Langajati
BROWSE
b. USE ANGAJAI
SORT On DataAng/D, Nume/A TO LAngajati
USE Langajati
LIST NUME, DataAng
c.

USE Candidati

SORT On Medie/D, Ob1/D To Admisi

FIELDS Nume, Prenume, Ob1, Ob2, Medie FOR Ob1>=5 .AND. Ob2>=5
USE Admisi
BROWSE
SORT On Medie/D, Ob1/D To Respinsi
FIELDS Nume, Prenume, Ob1, Ob2, Medie FOR Ob1 <5 .OR. Ob2<5
USE Respinsi
Sortarea logica ( indexarea ) tabelelor
A doua metoda, care este mai performanta ca si ordonarea fizica ( datorita
timpului care se pierde, a spatiului consumat, etc) si este folosita mai ales la
realizarea legaturilor dintre tabele, consta n crearea unui fisier separat ( numit
index) asociat tabelei, fisier index care sa pastreaza ordinea nregistrarilor .
Accesarea nregistrarilor din tabela se face prin intermediul indexului, n ordinea
data de fisierul index. .
De exemplu :
Carti.cdx
Titlu
Pozitie
Nr. nreg
Titlu
Autor
Nr. pag.
Amintiri din copil.
2
1
Ion
Liviu. R.
400
Ion
1
2

Carti.dbf

Amintiri din copilarie


Ion Creanga
100
Insula misterioasa
4
3
Morometii
Marin Preda
350
Morometii
3
4
Insula misterioasa
Jules Verne
450

Daca se doreste afisarea datelor, sistemul se uita n fisierul index si de acolo


afiseaza mai nti inregistrarea de pe pozitia 2 (ce o gaseste n tabelul carti.dbf),
apoi nregistrarea 1,4 si n final 3.
Folosirii fisierelor index aduce cteva avantaje : timp redus de obtinere a
listelor ordonate, daca se fac actualizari n tabel , fisierul index este actualizat
automat , spatiul de memorie consumat este mai mic .
Pentru a lucra cu indecsi, trebuie parcurse mai multe etape de lucru :
a.
se creaza fisierul index asociat tabelei, preciznd criteriile de ordonare
dorite .
b.
deschiderea (activarea) indexului respectiv , adica activarea criteriului de
ordonare .
c.

accesarea datelor din tabele ( conform ordinii din index).

d.

nchiderea indexului ( eventual nchiderea tabelei de care este legat indexul).

Crearea indexului se poate face la crearea tabelelui , cu ajutorul


constructorului de tabele sau cu ajutorul unor comenzi dedicate . De asemenea ,
se poate reveni asupra structurii cu ajutorul comenzuii MODIFY si se pot adauga
indecsi.

Observatie :
Sa consideram tabelul anterior carti.dbf, avnd urmatoarea forma :
CodC
Titlu
Autor
NrPag
DataI
C(5)
C(20)
C(30)
N(6)
D
1002
Ion
Liviu. R.
400
01.01.1998
1005
Amintiri din copilarie
Ion Creanga
100
02.12.1999
1001
Morometii
Marin Preda
350

03.11.2000
1009
Insula misterioasa
Jules Verne
450
07.05.1995

aca dorim sa vedem continutul tabelului ordonat , dupa mai multe criterii ,
va trebui sa cream mai multe fisiere index. De exemplu, daca dorim o lista
alfabetica dupa Titlu , va trebui creat un index ( am vazut n cursul 1 de Visual
Foxpro cum se face acest lucru), a carui expresie de indexare sa contina coloana
Titlu. n schimb, daca dorim sa avem liste ordonate alfabetic dupa autor si daca un
autor are mai multe carti , acestea sa fie afisate dupa Titlu, indexul va contine
expresia Autor+Titlu. O alta situatie , putin mai complicata apare daca se doreste
obtinerea unor criterii de ordonare care depind de coloane ale caror tipuri de date
sunt diferite . De exemplu, daca se doreste o lista dupa data intrarii iar daca sunt
carti intrate n aceeasi data sa apara alfabetic dupa titlu, expresia de indexare nu va
fi doar DataI+Titlu ( se va semnala eroare). Conform regulilor din Foxpro , o expresie
contine membrii de acelasi tip, prin urmare va trebui convertit unul din cmpuri la
tipul celuilalt. Cel mai simplu este sa se converteasca totul la tipul sir de caractere.
Pentru exemplul anterior, ar trebui folosita urmatoarea expresei de indexare
Dtos(DataI)+Titlu (Dtos este o functie care converteste "logic" o data calendaristica
la tipul sir de caractere ). Un alt exemplu similar, ar fi acela cnd se combina
coloane ce au valori numerice cu coloane ce au valori sir de caractere , cum ar fi o
lista ordonata dupa numarul de pagini si , n caz ca sunt mai multe carti cu acelasi
numar de pagina , alfabetic . Pentru un astfel de caz , se va folosi expresia
Str(NrPag)+Titlu.
Activarea indexului dorit (pot fi mai multe criterii de ordonare ) se poate
face cu ajutorul comenzii SET ORDER TO numeindex [IN tabela]. Exista o functie
numita ORDER(tabela) , care poate spune care este indexul activ .
Dupa deschiderea indexului, orice operatie de afisare, modificare sau
stergere se fac via index. Mai mult, orice modificare a datelor n tabela cu date are
ca efect modificarea datelor n fisierul index ( lucru neplacut n cazul ordonarii fizice
a tabelelor ).
Un alt avantaj al ordonarii logice , este legat de cautarea mai rapida a
datelor cu ajutorul unei alte comenzi numite SEEK. Aceasta se foloseste sub forma
SEEK expresie , unde expresie este o valoare legata de cheia de cautare .
Exemplu : USE Angajati
SET ORDER TO NUME
SEEK 'POPESCU'
IF FOUND()

DISPLAY
ENDIF
9.Copierea structurii unui tabel n alt tabel . Adaugarea de date din alte tabele.
O alta comanda , mostenita din vechiul Foxpro , este cea de multiplicare a
structurii unei tabel ntr-un alt tabel. Trebuie sa precizam ca Visual Foxpro, ofera si
alte solutii mai performante legate de acest subiect ( care se vor discuta mai
trziu).
Copierea structurii se face cu comanda COPY STRUCTURE, cu sintaxa :
COPY STRUCTURE to NouTabel [FIELDS lista cmpuri ]
Exemplu : USE Angajati
COPY STRU TO TEMP
De asemenea , se pot adauga nregistrari dintr-un tabel n alt tabel , folosind
comanda APPEND FROM cu sintaxa :
APPEND FROM Tabel [FOR conditie] FIELDS lista cmpuri
Exemplu :a. USE Angajati
COPY STRU TO TEMP
USE TEMP
APPEND FROM ANGAJATI
BROWSE
b. USE Angajati
COPY STRU TO TEMP FIELDS Nume,Prenume,Salariu
USE TEMP
APPEND FROM ANGAJATI FIELDS Nume,Prenume,Salariu
BROWSE
c. USE Candidati
COPY STRU TO Admisi FIELDS Nume,Prenume,Ob1,Ob2,Medie
COPY STRU TO Respinsi FIELDS Nume,Prenume,Ob1,Ob2,Medie
USE Admisi
APPEND FROM Candidati FIELDS Nume,Prenume,Ob1,Ob2,Medie
FOR Ob1>=5 .AND. Ob2>=5

USE Respinsi
APPEND FROM Candidati FIELDS Nume,Prenume,Ob1,Ob2,Medie
FOR Ob1<5 .OR. Ob2<5
BROWSE

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