Sunteți pe pagina 1din 7

Exerciii Capitolul 4

EXERCIII CAPITOLUL 4
4.1. Scrieti cte un program Transact-SQL si PL/SQL
pentru calculul factorialului unui numr dat.
4.2. Scriei i executai cele dou programe care folosesc
cursoarele prezentate n seciunea 4.1.1 (cursor Transact-SQL)
i seciunea 4.1.2 (cursor PL/SQL) din ndrumar i urmrii
rezultatele obinute. n tabelul ANGAJATI tergei cteva
tupluri i introducei altele noi. La o nou execuie a oricruia
din programele de mai sus, vei observa c numrul liniilor
afiate scade. Cum explicai acest lucru?
4.3. Scriei un program (Transact-SQL sau PL/SQL) care
parcurge liniile tabelului ANGAJATI, testeaz valoarea
salariului angajatului i acordai mrire de salariu acelor
angajai care au salariul mai mic dect un salariu minim dat,
astfel nct salariul acestora sa fie egal cu salariul minim
impus. S se afieze lista angajailor care au primit mrire de
salariu (numele, prenumele, vechiul salariu, noul salariu). S se
calculeze i s se afieze numrul total de angajai crora li s-a
mrit salariul i suma total cu care s-au marit salariile n
ntreprinderea respectiv.
4.4. n propria baz de date SQL Server, Oracle sau
MySQL, adaugai tabelele STUDENTI, DISCIPLINE,
EXAMENE executnd un fiier script. Pentru SQL Server
fiierul script este deja creat (Program_4_1.sql din ndrumar);
pentru celelalte sisteme se obine uor scriptul necesar prin
adaptarea celui existent. Introducei mai multe linii n aceste
tabele.

170

Exerciii Capitolul 4

Testai cursorul Transact-SQL din Program_4_3.sql, scriei


i testai un program similar n PL/SQL.

171

Exerciii Capitolul 4

4.5. Creai sursele ODBC pentru propria baz de date SQL


Server, Oracle sau MySQL (n care ai introdus tabelul
STUDENTI). n Programul 4.12 modificai numele sursei de
date cu numele propriei surse ODBC pentru fiecare sistem de
gesiune, numele utilizatorului i parola acestuia i executai
programul. Urmrii ce informaii sunt necesare pentru
conectarea la surse ODBC pentru baze de date din diferite
sisteme de gestiune.

172

Exerciii Capitolul 4

4.6. Definii o surs de date ODBC cu numele


INTREPRINDERE pentru baza de date MS ACCESS
Intreprindere.mdb din directorul de aplicaii. Compilai
i executai programul Angajati (care se gsete n
directorul
Aplicatii\Capitol4\MFC\Angajati\Step1
din
173

Exerciii Capitolul 4

ndrumar). Identificai elementele de baz ale interfeei MFCODBC: clasa conexiunii la baza de date, (CDatabase), clasa
setului de nregistrri (CAngajatiSet), clasa vedere
(CAngajatiView), asocierile dintre controalele interfeei i
variabilele membre ale clasei setului de instruciuni.
4.7. Executai pasul urmtor de dezvoltare a aplicaiei
MFC-ODBC
Angajati
pentru
baza
de
date
INTREPRINDERE (Step 2). La execuia aplicaiei trebuie s
obtinei o fereastr de afiare asemntoare celei din Fig. 4. 2.
Realizai pasul urmtor al aplicaiei (Step 3), aa cum este
descris n ndrumar. Verificai comenzile de introducere,
tergere, actualizare a liniilor tabelului ANGAJATI din
program.
4.8. Compilai i executai aplicaia SA din directorul MFC
al acestui capitol, n cele dou variante Step 1 i Step 2.
Urmrii n fiierele proiectului modul de definire a mai multor
formulare n proiectul SDI (Step 1) i n proiectul MDI (Step
2).
4.9.* Folosind aceeai baz de date ca mai sus
(INTREPRINDERE), dezvoltai o aplicaie MFC-ODBC de tip
SDI pentru interogarea: Care sunt numele, prenumele i
adresa furnizorilor care au livrat o component a crei
denumire este dat ca parametru? Pentru aceast interogare se
folosesc tabelele FURNIZORI,ACHIZITII,COMPONENTE,
parametrul este atributul Denumire
din tabelul
COMPONENTE, iar instruciunea SQL care realizeaz aceast
interogare este: SELECT Nume,Prenume,Adresa
FROM FURNIZORI,ACHIZITII,COMPONENTE
WHERE
FURNIZORI.IdFurnizor
=
ACHIZITII.IdFurnizor
174

Exerciii Capitolul 4

AND
COMPONENTE.IdComponenta
=
ACHIZITII.IdComponenta
AND Denumire=parametru
Pentru afiare folosii clasa vedere (formularul
CRecordView) care se creeaz implicit la crearea proiectului.
Adaugai nc dou formulare, pentru listarea tuturor
furnizorilor i a tuturor componentelor i asigurai selecia ntre
formulare prin comenzi de meniu (aa cum este explicat n
seciunea 4.2.2.5).
4.10.* Folosind aceeai baz de date ca mai sus
(INTREPRINDERE), dezvoltai o aplicaie MFC-ODBC
pentru interogarea: Care sunt numele, prenumele i adresa
clienilor care au cumprat un produs a crui denumire este
dat ca parametru? Pentru aceast interogare se folosesc
tabelele CLIENTI,VANZARI,PRODUSE, parametrul este
atributul Denumire din tabelul PRODUSE, iar instruciunea
SQL care realizeaz aceast interogare este:
SELECT
Nume,Prenume,Adresa
FROM
CLIENTI,VANZARI,PRODUSE
WHERE CLIENTI.IdClient = VANZARI.IdClient
AND PRODUSE.IdProdus = VANZARI.IdProdus
AND Denumire=parametru
Pentru afiare folosii clasa vedere (formularul
CRecordView) care se creeaz implicit la crearea proiectului.
Adaugai nc dou formulare, pentru listarea tuturor
clienilor i a tuturor produselor i asigurai selecia ntre
formulare prin comenzi de meniu (aa cum este explicat n
seciunea 4.2.2.5).
4.11.* Folosind aceeai baz de date ca mai sus
(INTREPRINDERE), dezvoltai o aplicaie MFC-ODBC de tip
SDI pentru interogarea: Care sunt numele, prenumele i data
naterii angajailor care particip la un proiect a crui denumire
175

Exerciii Capitolul 4

este dat ca parametru? Pentru aceast interogare se folosesc


tabelele ANGAJATI,ACTIVITATI,PROIECTE, parametrul
este atributul Denumire din tabelul PROIECTE, iar
instruciunea SQL care realizeaz aceast interogare este:
SELECT
Nume,Prenume,DataNasterii
FROM
ANGAJATI,ACTIVITATI,PROIECTE
WHERE
ANGAJATI.IdAngajat
=
ACTIVITATI.IdAngajat
AND PROIECTE.IdProiect = ACTIVITATI.IdProiect
AND Denumire=parametru;

Pentru afiare folosii clasa vedere (formularul


CRecordView) care se creeaz implicit la crearea proiectului.
Adaugai nc un formular, pentru listarea tuturor
proiectelor i asigurai selecia ntre formulare prin comenzi de
meniu (aa cum este explicat n seciunea 4.2.2.5).
4.12.* Proiectai baza de date PUBLICATII (descris n
Exercitiul 2.9) i sursa de date ODBC corespunztoare. Se
consider urmtoarele definiii ale tabelelor:
DOMENII(IdDomeniu, Denumire)
CARTI(IdCarte,Titlul,DataAparitiei,Editura,Localita
tea,Tara,IdDomeniu)
AUTORI(IdAutor,Nume,Prenume,AnulNasterii)
PUBLICATII(IdPublicatie,IdCarte,IdAutor,Ordinea)

4.13.* Dezvoltai o aplicaie MFC-ODBC de tip SDI pentru


interogarea Care sunt titlul, data apariiei i editura crilor
dintr-un domeniu dat ca parametru? asupra bazei de date
PUBLICATII. Pentru aceast interogare se folosesc tabelele
DOMENII i CARTI, parametrul este atributul Denumire
din tabelul DOMENII, iar intruciunea SQL care realizeaz
aceast interogare este:
SELECT Titlul,DataAparitiei,Editura FROM CARTI,
DOMENII
WHERE
DOMENII.IdDomeniu
=
CARTI.IdDomeniu
AND
Denumire = parametru;
176

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