Вы находитесь на странице: 1из 8

Proiect Baze de date

-Gestionarea unui campionat de fotbal-

Studenti: Robu Andrei, Tatarau Marian Specializarea: Calculatoare An III, semigrupa 1132b Profesor ndrumtor: Craciun Elena Gina

Visual FoxPro
Scurt istoric

Visual FoxPro are o istorie lung i glorioas, fiind cunoscut drept cea mai flexibil i mai puternic aplicaie de pe pia n domeniul bazelor de date. Plecnd de la originile sale ca FoxBASE, produs de Fox Sftware, "Fox" cum este denumit n comunitatea internaional a programatorilor, a fost cunoscut ntotdeauna pentru viteza, flexibilitatea i eficacitatea s aca produs de programare pentru bazele de date. La sfritul anilor '80, FoxBASE a aprut pe pia ca o copie a produsului dBASE, fiind proiectat s fie mai rapid i mai bun dect dBASE i mai ales, compatibil cu dBASE III. FoxPro 1.0 a marcat desprinderea de dBASE. A introdus noi concepte n proiectarea interfeei grafice cu utilizatorul (GUI) i a unor metode noi de dezvoltare a programelor, care l-au propulsat n faa dBASE-ului. FoxPro i-a dobndit adevrata identitate odat cu versiunea 2.0. Odat cu aceast versiune au fost incluse cteva tehnologii noi, care au revoluionat piaa dezvoltrii bazelor de date pentru calculatoarele personale. Introducerea algoritmului Rushmore a avut un efect neateptat. Dintr -o dat, tabele de milioane de nregistrri puteau fi implementate n sistemele de baze de date pentru PC fr a recurge la alte tehnologii mai costisitoare. Instruciunile SQL au fost un alt element revoluionar. Pentru prima dat, utilizatorii de Fox foloseau instruciuni singulare care nlocuiau proceduri ntregi. SQL era, i nc este, limbajul datelor. Foxpro 2.0 a mai adugat o modalitate de realizare a rapoartelor i afirilor prin adugarea proiectanilor de rapoarte i de desenare. Screen Designer genera cod surs, dar deschidea o nou cale n dezvoltarea interfeelor G UI ntr-un mediu bazat pe text. n concluzie, FoxPro 2.0 a fost apariia hotrtoare care a dus la posibilitile de azi ale Visual FoxPro. Caracteristicile care l fceau puternic erau: modul de proiectare a interfeei cu utilizatorul, limbajul SQL i viteza mare de acces la date. Suportul pentru Windows a fost introdus odat cu FoxPro 2.5. Suportul p entru schimbul dinamic de date (Dynamic Data Exchange) era n curs de implementare dar, aa cum o pot confirma cei care au lucrat cu el, FoxPro 2.5 pentru Windows era mai degrab o aplicaie DOS, cu aspect de Windows. Urmtoarea revoluie major a trebuit s atepte apariia versiunii 3.0 a Visual FoxPro. nc o dat, Fox a revoluionat lumea programrii bazelor de date. Versiunea 3.0 a adugat o serie de caractersitici, dintre care enumerm cteva Containerul de baze de date (Database Container - DBC) care aducea suportul pentru proceduri memorate, reguli ataate la tabel i o mulime de funcii suplimentare pentru lucrul cu datele. Vizualizrile (Views) care sunt cursoare SQL actualizabile. Acestea au introdus o metod cu totul nou de acces la date n vederea prelucrrii, a reprezentrii GUI i a realizrii rapoartelor. Erau dou tipuri de

vizualizri, locale i ndeprtate. O vizualizare local este bazat pe orice surs de date ODBC, inclusiv SQL Server, Oracle, Acces etc. Aceast implementare revoluionar a fcut din Visual FoxPro instrumentul cel mai de seam n accesul la datele locale i ndeprtate. Crearea aplicaiilor la nivel de ntreprindere, cu utilizarea datelor din surse ndeprtate, devenise acum o sarcin la fel de uoar ca i utilizarea tabelelor proprii programului Visual FoxPro. O implementare robust, deplin, a orientrii spre obiect a deschis calea utilizrii d in ce n ce mai largi a acestui mod de programare, bazat pe modelul-obiect i pe posibilitatea construirii propriilor clase i subclase. Versiunea 5.0 era o actualizare a versiunii 3.0, cu rezolvarea multor nereguli i coninnd trsturi noi i interesant e. S-a introdus posibilitatea crerii i utilizrii serverelor COM. S-au adugat cteva comenzi i funcii noi i se pot observa nceputurile legrii mediului Visual FoxPro de facilitile Internetului.

Gestiunea unui campionat de fotbal:

Proiectul are ca scop realizarea unei aplicatii in Visual FoxPro care sa serveasca la administrarea unei baze de date (introducerea, modificarea si stergerea datelor introduse precum si realizarea unor rapoarte). Baza de date pentru gestiunea unui campionat de fotbal are urmatoarele tabele in componenta : 1. Echipe (id_echipa, id_antreno, nume , id_jucator, descriere, id_buget, id_stadion, id_trofeu) 2. Antrenori (id_antreno, nume_ant, varsta, informatii, id_echipa) 3. Jucatori (id_jucatori, nume_juc,id_echipa, id_buget, id_accidentati) 4. Stadioane (id_stadion, id_liga, nume_stadi, id_echipa, nr_locuri) 5. Bugete (id_buget, id_echipa,buget) 6. Transferuri (id_transfer,id_jucator, id_echipa,suma) 7. Trofee (id_trofeu, id_echipa, nume_trofeu,) 8. Accidentati (id_acciden, id_echipa, id_jucator, num)

S-au folosit chei primare chei canditat. Legaturile sunt: de tipul 1:N (unu la mai multi) si de 1:1 (unu la unu) . Pentru partea grafica s-au folosit 16 forme pentru: Adaugarea: echipelor, antrenorilor, jucatorilor, stadioanelor, bugetelor, transferurilor, trofeelor, accidentatilor.

Vizualizarea: echipelor, antrenorilor, jucatorilor, stadioanelor, bugetelor, transferurilor, trofeelor, accidentatilor. Modificarea : echipelor, antrenorilor, jucatorilor, transferurilor. Stergerea : echipelor, antrenorilor, jucatorilor transfefurilor (in functie de id). Informatii despre autorii.

Legaturile dintre tabele sunt prezentate in imaginea urmatoare :

Tabelele folosite la baza de date:

Forma principala:

Secvente de cod folosite pentru adaugarea, modificarea, vizualizarea si stergerea unei echipe :

Adaugare:

PRIVATE private private private private private private private

varid_echipa varid_antrenor varnume vardescriere varid_jucator varid_stadion varid_trofeu varid_buget

set talk off varid_echipa=VAL(alLtrim(thisform.text1.Text)) varid_antrenor =VAL(alltrim(thisform.text2.text)) varnume = alltrim(thisform.text3.text) vardescriere = alltrim(thisform.text4.text) varid_jucator = VAL(alltrim(thisform.text5.text)) varid_stadion = VAL(alltrim(thisform.text6.text)) varid_trofeu = VAL(alltrim(thisform.text7.text)) varid_buget = VAL(alltrim(thisform.text8.text))

if len(ALLTRIM(thisform.text1.text)) = 0 messagebox("Trebuie introdus un id.") return endif if len(ALLTRIM(thisform.text2.Text)) = 0 messagebox("Trebuie introdus un nume.") return endif

if len(alltrim(thisform.text3.text)) = 0 messagebox("Trebuie introdusa varsta.") return ENDIF if len(alltrim(thisform.text4.text)) = 0 messagebox("Trebuie introduse informatii.") return endif if len(alltrim(thisform.text5.text)) = 0 messagebox("Trebuie introdus id-ul echipei.") return ENDIF if len(alltrim(thisform.text6.text)) = 0 messagebox("Trebuie introdus id-ul echipei.") return ENDIF if len(alltrim(thisform.text7.text)) = 0 messagebox("Trebuie introdus id-ul echipei.") return ENDIF if len(alltrim(thisform.text8.text)) = 0 messagebox("Trebuie introdus id-ul echipei.") return ENDIF CLOSE ALL use echipa insert into echipa values ( int(val(thisform.text1.value)), INT(val(thisform.text2.value)),(thisform.text3.value),(thisform.text4.value ),int(val(thisform.text5.value)),int(val(thisform.text6.value)),int(val(thi sform.text7.value)),int(val(thisform.text8.value))) messagebox("Adaugarea a reusit.")

Stergere:
PRIVATE varid_echipa set talk off varid_echipa=VAL(alLtrim(thisform.text1.Text)) if len(ALLTRIM(thisform.text1.text)) = 0 messagebox("Trebuie introdus un id.") return endif CLOSE ALL use echipa DELETE FROM echipa WHERE id_echipa=val(thisform.text1.value ) USE echipa EXCLUSIVE PACK MESSAGEBOX("S-a realizat stergerea.") BROWSE

Modificare:
PRIVATE private private private private private private private varid_echipa varid_antreno varnume vardescriere varid_jucator varid_stadion varid_trofeu varid_buget

set talk off varid_echipa=VAL(alLtrim(thisform.text1.Text)) varid_antreno =VAL(alltrim(thisform.text2.text)) varnume = alltrim(thisform.text3.text) vardescriere = alltrim(thisform.text4.text) varid_jucator = VAL(alltrim(thisform.text5.text)) varid_stadion = VAL(alltrim(thisform.text6.text)) varid_trofeu = VAL(alltrim(thisform.text7.text)) varid_buget = VAL(alltrim(thisform.text8.text))

if len(ALLTRIM(thisform.text1.text)) = 0 messagebox("Trebuie introdus un id.") return endif if len(ALLTRIM(thisform.text2.Text)) = 0 messagebox("Trebuie introdus un nume.") return endif if len(alltrim(thisform.text3.text)) = 0 messagebox("Trebuie introdusa varsta.") return ENDIF if len(alltrim(thisform.text4.text)) = 0 messagebox("Trebuie introduse informatii.") return endif if len(alltrim(thisform.text5.text)) = 0 messagebox("Trebuie introdus id-ul echipei.") return ENDIF if len(alltrim(thisform.text6.text)) = 0 messagebox("Trebuie introdus id-ul echipei.") return ENDIF if len(alltrim(thisform.text7.text)) = 0 messagebox("Trebuie introdus id-ul echipei.") return ENDIF if len(alltrim(thisform.text8.text)) = 0

messagebox("Trebuie introdus id-ul echipei.") return ENDIF CLOSE ALL select echipa replace id_echipa WITH val(thisform.text1.value) replace id_antreno WITH val(thisform.text2.value) replace nume with(thisform.text3.value) replace descriere WITH (thisform.text4.value) replace id_jucator WITH val(thisform.text5.value) replace id_stadion WITH val(thisform.text6.value) replace id_trofeu WITH val(thisform.text7.value) replace id_buget WITH val(thisform.text8.value) messagebox("Modificarea a reusit a reusit.")

Vizualizare:
USE echipa Browse

Вам также может понравиться