Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




CURS 2- VISUAL FOXPRO EXPLOATAREA BAZELOR DE DATE

Informatica


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 īntālnim 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.

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 rānd , numai ultimul ramāne accesibil, celelalte īnchizāndu-se automat. Pentru astfel de situatii, exista mai multe zone de lucru identificate prin numere ( īn numar de 32767) , īn fiecare zona putāndu-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 cāmpurilor bazelor de date deschise īn mai multe zone de lucru, se poate face si prin numele bazei de date urmat de punct si numele cāmpului : 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 sfārsitul 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 apasānd butonul dreapta pe obiectul tabel) fie tastānd comanda īn fereastra de comanda.sablonul general de utilizare (simplificat):

BROWSE [lista cāmpuri] [WIDTH latime] [FOR conditie ] [NOEDIT] [NODELETE] [NOAPPEND] .

Se observa aparitia unor argumente suplimentare , care nu sunt obligatorii : lista cāmpuri 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 cāmpuri ( cu comenzile de editare cunoscute). De asemenea, se pot adauga īnregistrari noi tastīnd CTRL +Y sau alegānd comanda APPEND NEW RECORD din meniul TABLE ( atentie meniul Table apare doar cānd 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 tastānd 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 tastānd comanda PACK īn fereastra de comanda, fie alegānd 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 cāmpuri] [grup nregistrariri] [FOR conditie] [WHILE conditie]

[TO PRINTER|TO FILE][NOCONSOLE]

Īn mod implicit se afiseaza toate cāmpurile, īn schimb se pot preciza cāmpurile care se vor afisa . Domeniu precizeaza grupul de īnregistrari care se vor afisa, domeniu putānd 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

USE cursanti

LIST FOR Datan >

USE cursanti

LIST Nume, Prenume TO PRINTER NOCONSOLE

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 tārziu).

stergerea īnregistrarilor din tabele -comanda DELETE

Alaturi de adaugare si modificare, stergerea reprezinta una din operatiile des īntānite ī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

USE cursanti

DELETE FOR Datan >

PACK.

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.

Modificarea continutului unei tabel.

Modificarea valorilor din cāmpuri 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 cāmpuri. Totusi exista o comanda dedicata, folosita mai ales īn programe, cu ajutorul careia se modifica valorile din cāmpuri . Comanda se numeste REPLACE si are sintaxa :

REPLACE [domeniu] cāmp1 WITH valoare1, ., cāmpn WITH valoaren

[FOR conditie] [WHILE conditie]

Comanda īnlocuieste vechea valoare din cāmpurile 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

USE salariati

REPLACE ALL Salariu WITH 1.5 * Salariu

REPLACE ALL Sanatate WITH 0.07 *Salariu

USE cursanti

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

Īn programe, mai ales cānd se fac calcule , comanda este foarte utila, deoarece modificarea unui cāmp 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 cāmpurile 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 cāmpuri care se vor copia īn īnregistrarea curenta a tabelei active . Daca se doreste si copierea cāmpurilor memo, trebuie adaugata si optiunea MEMO.

Comanda SCATTER, este opusa comenzii anterioare, ea copiind cāmpurile ī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

Calcule statistice cu datele din tabele- comenzile SUM, COUNT

Pe lānga cautarea si consultarea datelor din tabele, īn aplicatiile practice avem nevoie si de calcule cu valorile cāmpurilor. De exemplu, ne intereseaza sa stim care este totalul salariilor brute sau cāt este impozitul total ce trebuie virat. De asemenea, ne intereseaza cāti angajati nu sunt platitori de impozit. Toate aceste lucruri constau de fapt īn operatii statistice asupra īnregistrarilor din tabele : īnsumarea valorii cāmpurilor 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 ANGAJAŢI

COUNT FOR Impozit=.T. TO Nr

?Nr

O alta operatie utila este aceea de īnsumare a valorilor unor cāmpuri numerice. Pentru aceasta folosim comanda SUM cu sintaxa :

SUM [domeniu] expresie1, expresie2,., expresien TO v1,v2,.,vn [FOR conditie]

Exemplu :a. USE ANGAJAŢI

SUM VenitBrut TO TotalBrut

?TotalBrut

b. USE ANGAJAŢI

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 cāmpuri.

Exemplu :a. USE ANGAJAŢI

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 cāmpuri 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 ANGAJAŢI

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 ramāne 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 cāmp1 /A sau /D , ., cāmpn /A sau /D TO TabelaNoua

FOR conditie

Exemplu : a. USE ANGAJAŢI

SORT On Nume TO LAngajati

USE Langajati

BROWSE

b. USE ANGAJAŢI

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 Carti.dbf

Titlu

Pozitie

Nr. īnreg

Titlu

Autor

Nr. pag.

Amintiri din copil.

Ion

Liviu. R.

Ion

Amintiri din copilarie

Ion Creanga

Insula misterioasa

Morometii

Marin Preda

Morometii

Insula misterioasa

Jules Verne

Daca se doreste afisarea datelor, sistemul se uita īn fisierul index si de acolo afiseaza mai īntāi inregistrarea de pe pozitia 2 (ce o gaseste īn tabelul carti.dbf), apoi īnregistrarea 1,4 si īn final 3.

Folosirii fisierelor index aduce cāteva 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, precizānd 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, avānd urmatoarea forma :

CodC

Titlu

Autor

NrPag

DataI

C(5)

C(20)

C(30)

N(6)

D

Ion

Liviu. R.

Amintiri din copilarie

Ion Creanga

Morometii

Marin Preda

Insula misterioasa

Jules Verne

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 cāmpuri 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 cānd 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 tārziu).

Copierea structurii se face cu comanda COPY STRUCTURE, cu sintaxa :

COPY STRUCTURE to NouTabel FIELDS lista cāmpuri ]

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 cāmpuri

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


Document Info


Accesari: 13467
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )