Sunteți pe pagina 1din 88

UNIVERSITATEA TEFAN CEL MARE SUCEAVA

Facultatea de tiine Economice i Administaie !u"lic#


Nicolae Moaiu
$A%E &E &ATE

ndrumar de laborator
'(()
1
Refereni tiinifici:
Prof.univ.dr.ing. Alexandru Valachi Universitatea Tehnic !h. Asachi" #ai
Prof.univ.dr.ing. $tefan%!heorghe Pentiuc Universitatea $tefan cel &are" 'uceava
(o)*right + ,--.. Toate dre)turile asu)ra acestei ediii sunt re/ervate autorului
,
&escieea CI! a $i"liotecii Naionale a Rom*niei
M+RARIU, NIC+LAE
$a-e de date. /nduma de la"oato0 0icolae &orariu .
'uceava: 1ditura Universitii din 'uceava2 ,--.
3i4liogr.
#'30 567%888%1.5%9
--:.8.;-6..9<
CU!RINS
#ntroducere.........................................................................................................................:
=ucrare de la4orator nr. 1...................................................................................................
3a/e de date A((1''. (rearea unei 4a/e de date..................................................
=ucrare de la4orator nr. ,..................................................................................................5
3a/e de date A((1''. (rearea i utili/area ta4elelor...........................................5
=ucrare de la4orator nr. 7................................................................................................1:
3a/e de date A((1''. (rearea c>?)urilor de ti) =oo@u) Ai/ard....................1:
=ucrare de la4orator nr. :................................................................................................,1
3a/e de date A((1''. (rearea ta4elelor 4a/ei de date Burni/ori(lienti...........,1
=ucrare de la4orator nr. .................................................................................................,:
3a/e de date A((1''. #nterogri........................................................................,:
=ucrare de la4orator nr. 8................................................................................................7-
3a/e de date A((1''. Bor?ulare.......................................................................7-
=ucrare de la4orator nr. 6................................................................................................7:
3a/e de date A((1''. Ra)oarte..........................................................................7:
=ucrare de la4orator nr. 9................................................................................................:7
3a/e de date BoxPro. (reare ta4ele2 introducere i editare date Cn ta4ele...........:7

=ucrare de la4orator nr. 5................................................................................................:5
3a/e de date BoxPro. 1le?entele li?4aDului BoxPro...........................................:5
=ucrare de la4orator nr. 1-...............................................................................................5
3a/e de date BoxPro. (lase de instruciuni ale li?4aDului BoxPro.......................5
=ucrare de la4orator nr. 11..............................................................................................86
3a/e de date BoxPro. Progra?area Cn Visual BoxPro..........................................86
=ucrare de la4orator nr. 1,..............................................................................................6.
=i?4aDul 'E=. (rearea 4a/ei de date...................................................................6.

=ucrare de la4orator nr. 17..............................................................................................9,
=i?4aDul 'E=. #nterogarea 4a/elor de date..........................................................9,
3i4liografie......................................................................................................................99
7
Intoducee
A)licaiile )ractice )re/entate Cn Cndru?arul de la4orator au la 4a/ lucrarea $a-e de date
ela4orat de autor i )u4licat de 1ditura Universitii $tefan cel &are" 'uceava2 #'30
567%9,57%97%5, ,--7.
#nfor?atica de gestiune a i?)us de/voltarea i diversificarea ra)id a 'iste?elor de
!estiune a 3a/elor de Fate ;'.!.3.F.< i a condus la reali/area unui nu?r i?)resionant de
a)licaii infor?atice cu 4a/e de date. 'iste?ele i a)licaiile infor?atice cu 4a/e de date sunt
utili/ate a/i Cn a)roa)e toate do?eniile de activitate din care un loc a)arte Cl ocu) utili/area lor Cn
cadrul agenilor econo?ici.
'co)ul lucrrii este de a fa?iliari/a studenii econo?iti cu utili/area unor )roduse )entru
crearea i gestionarea 4a/elor de date. =ucrrile )ractice de la4orator sunt reali/ate Cn cadrul
)roduselor BoxPro2 Access i a li?4aDului 'E= utili/at Cn cadrul siste?ului Gracle.
Pentru a asigura )arcurgerea i Cnsuirea )ro4le?aticii )ro)use2 lucrarea de fa cu)rinde
trei )ri i anu?e: # 3a/e de date Access2 ## 3a/e de date BoxPro2 ### =i?4aDul 'E=.
Partea #%a )re/int un ?ediu de lucru )erfor?ant cu 4a/e de date. 'unt definite
co?)onentele unei 4a/e de date Access2 fa/ele i )rocedurile de ur?at )entru crearea i ex)loatarea
4a/ei de date. Aceast )ro4le?atic este tratat )e )arcursul a a)te lucrri de la4orator2 Cn fiecare
lucrare fiind )re/entate su?ar faciliti ale )rodusului Access2 ?odaliti de soluionare a unor
)ro4le?e )ractice i for?ulate )ro4le?e )ro)use s)re re/olvare.
Hn )artea a ##%a sunt )re/entate ci )ractice de organi/are i ex)loatare a 4a/elor de date
relaionale cu aDutorul siste?ului BoxPro. 'unt )re/entate ele?entele li?4aDului BoxPro i
evideniate facilitile oferite de ?ediul de )rogra?are Visual BoxPro. Pro4le?ele avute Cn vedere
)rivind crearea i uti/area unei 4a/e de date BoxPro sunt enunate i soluionate Cn cadrul a )atru
lucrri de la4orator av>nd Cn vedere )ro4le?a enunat i re/olvat folosind )rodusul Access.
Hn )artea a ###%a este )re/entat li?4aDul 'E= )entru crearea2 ad?inistrarea i interogarea
4a/elor de date relaionale. #?)le?entat Cn ?aDoritatea )roduselor softIare ?oderne de 4a/e de
date2 li?4aDul 'E= este larg utili/at Cn arhitecturi cu 4a/e de date client J server2 siste?e de 4a/e de
date distri4uite2 )entru accesarea 4a/elor de date Cn reele de calculatoare2 c>t i )entru interogarea
4a/elor de date )e un singur calculator )ersonal. 'unt illustrate exe?)le de utili/are a li?4aDului
'E= Cn cadrul )rodusului Gracle )entru crearea2 actuali/area i interogarea 4a/ei de date2 definirea
utili/atorilor i acordarea dre)turilor de acces2 asigurarea securitii 4a/ei de date la nivel de siste?
i la nivel de relaie. 1xe?)lele )re/entate )ecu? i )ro4le?ele for?ulate s)re re/olvare )leac de
la )ro4le?a enunat i soluionat Cn )ri?ele dou )ri ale lucrrii.
Pre/entarea ?odalitilor de soluionare a aceleiai )ro4le?e Cn cadrul a trei )roduse )entru
crearea i interogarea 4a/elor de date relaionale ofer )osi4ilitatea efecturii unei anali/e
co?)arative )rivind facilitile oferite de fiecare din cele trei )roduse utili/ate.
:
Lucae de la"oato n1 2
Tema3 $a-e de date ACCESS1 Ceaea unei "a-e de date1
&icrosoft Access este un siste? )entru crearea i utili/area 4a/elor de date de co?)lexitate
?edie )entru calculatoare )ersonale2 )ut>nd lucra )erfor?ant cu sute de ?ii de Cnregistrri )e un
calculator )ersonal sau Cn cadrul unei reele de )>n la ,- utili/atori care lucrea/ si?ultan cu 4a/a
de date.
Progra?ul Access stochea/ toate co?)onentele unei 4a/e de date Cntr%un singur fiier )e
disc cu extensia .?d4.
Com4onentele unei "a-e de date ACCESS
G 4a/ de date Access )oate conine ur?toarele co?)onente:
- Tabele stochea/ datele 4a/ei de date. Biecare coloan a ta4elei este nu?it c>?) i fiecare
r>nd al ta4elei este nu?it Cnregistrare.
- Interogri reali/ea/ extragerea unor date din una sau ?ai ?ulte ta4ele confor? unor criterii
)reci/ate de utili/ator Cn vederea vi/uali/rii i actuali/rii datelor din 4a/a de date sau )entru a
crea alte ta4ele Cn vederea )strrii unui instantaneu al infor?aiilor. G interogare nu are date
)ro)rii i o)erea/ cu date din ta4elele 4a/ei de date.
- Formulare un for?ular este o fereastr )entru introducerea sau afiarea i editarea datelor. Un
for?ular )oate conine su4for?ulare )entru a afia date asociate unor date din for?ular i
4utoane sau alte o4iecte grafice )entru reali/area anu?itor aciuni.
- Rapoarte sunt utili/ate )entru o)eraii de ieire Cn vederea o4inerii unor situaii re/ultate
din )relucrarea unor date din 4a/a de date. Pentru includerea selectiv a unor date Cntr%un ra)ort
sau )entru reali/area unui ra)ort care folosete date din ?ai ?ulte ta4ele va tre4ui creat ?ai
Cnt>i o interogare i a)oi ra)ortul s fie funda?entat )e re/ultatele interogrii.
- Comenzi macro )er?it reali/area unei secvene de aciuni care )oate fi ataat unui 4uton.
- Module stochea/ )roceduri i funcii scrise Cn li?4aDul Visual 3asic )entru tratarea
eveni?entelor.
Ceaea unei "a-e de date
&icrosoft Access furni/ea/ dou ?etode de creare a unei 4a/e de date.
1. se )oate crea o 4a/ de date goal i a)oi se adaug ta4elele2 interogrile2
for?ularele2 ra)oartele i alte o4iecte necesare.
,. se )oate crea o 4a/ de date folosind Database Wizard.
#ndiferent de ?etoda )rin care se creea/ 4a/a de date2 ea )oate fi oric>nd ?odificat.
Ceaea unei "a-e de date 5oale
Pentru a crea o 4a/ de date goal se vor executa ur?toarele o)eraii:
1. Atunci c>nd se deschide o sesiune &icrosoft Access2 )e ecran se afiea/ caseta de dialog
Microsoft Access ce conine o)iuni care )er?it crearea unei 4a/e de date noi sau deschiderea
uneia existente ;ve/i figura 1<. Pentru a crea o 4a/ de date goal ;fr a folosi un Ai/ard<2 se
execut clic )e o)iunea $lan6 &ata"ase i a)oi se execut clic )e 4utonul +7. Fac 4a/a de date
este deschis deDa sau caseta de dialog Microsoft Access este Cnchis2 atunci se va executa clic )e
4utonul Ne8 &ata"ase din 4ara instru?entelor Database. Pe ecran se afiea/ caseta de dialog
New ;ve/i figura ,<. 'e execut du4lu%clic )e )ictogra?a Blank Database din eticheta 9eneal
.
$lan6 &ata"ase )er?ite crearea unei 4a/e de date goale
&ata"ase :i-ad )er?ite crearea unei noi 4a/e de date folosind un Ii/ard
+4en an E;istin5 &ata"ase )er?ite deschiderea unei 4a/e de date existente.
8
Fi5ua ' (aseta de dialog New
Fi5ua2 (aseta de dialog Microsoft Access
,. Hn caseta de dialog File New Database care a)are )e ecran ;figura ,.1<2 se va s)ecifica
nu?ele 4a/ei de date Cn controlul File name i se alege un dosar )entru 4a/a de date Cn controlul
Save in2 a)oi execut clic )e 4utonul Ceate. Pe ecran se va deschide fereastra Database ;ve/i
figura :<.
Fu) crearea unei 4a/e de date goale se vor defini o4iectele ;ta4elele2 for?ularele2
interogrile2 ra)oartele etc.< care vor for?a 4a/a de date.
Ceaea "a-ei de date <olosind &ata"ase :i-ad
Pentru a crea o nou 4a/ de date folosind un Ai/ard se vor executa ur?toarele o)eraii:
Atunci c>nd se deschide o sesiune de lucru Access2 )e ecran se afiea/ caseta de dialog Microsoft
Access ce conine o)iuni care )er?it crearea unei 4a/e de date noi sau deschiderea uneia deDa
existente ;ve/i figura 1<. Pentru a crea o 4a/ de date folosind un Ai/ard2 se va executa clic )e
o)iunea &ata"ase :i-ad i a)oi se execut clic )e 4utonul +7. Fac este deDa deschis o 4a/
de date sau caseta de dialog Microsoft Access este Cnchis2 atunci se execut clic )e 4utonul Ne8
&ata"ase din 4ara instru?entelor Standard. Pe ecran se afiea/ caseta de dialog New ;ve/i figura
,<. 'e execut a)oi clic )e eticheta &ata"ases.
Hn eticheta &ata"ases2 se execut du4lu%clic )e )ictogra?a ti)ului de 4a/ de date care se
va crea ;ve/i figura 7<. Hn caseta de dialog File New Database se selectea/ dosarul Cn care se va
salva 4a/a de date i se va tasta nu?ele acesteia. 'e execut clic )e 4utonul Ceate )entru a Cnce)e
definirea noii 4a/e de date. 'e vor ur?a indicaiile din casetele de dialog ce a)ar )e ecran. =a
ter?inarea o)eraiei de creare a 4a/ei de date )e ecran se afiea/ fereastra Database conin>nd
o4iectele definite de Ai/ard ;ve/i figura :<2 )e 4a/a indicaiilor care au fost date Cn casetele de
dialog.
6
Fi5ua '12 (aseta de dialog File New Database
!o"lem# 4o4us#
' se cree/e 4a/a de date Burni/ori(lieni )rin fiecare din cele dou ?etode )re/entate ?ai
sus.
9
Fi5ua = (aseta de dialog New av>nd selectatK eticheta &ata"ases
Fi5ua > G4iectele 4a/ei de date de ti) Contact Management
Lucae de la"oato n1 '
Tema3 $a-e de date ACCESS1 Ceaea i utili-aea ta"elelo
Ta4ela este o colecie organi/at de date des)re un anu?it su4iect2 cu? ar fi )roduse2
furni/ori etc. Bolosind o ta4el se)arat )entru fiecare su4iect se eli?in du)licarea datelor2
asigur>ndu%se astfel utili/area ?ai eficient a s)aiului de stocare i reducerea erorilor la
introducerea datelor. Ta4elele sunt organi/ate Cn coloane ;nu?ite c*m4ui< i linii ;nu?ite
?ne5ist#i sau aticole<.
Ti4ui de date
=a alegerea ti)ului de date )entru un c>?) se vor avea Cn vedere ur?toarele o4servaii:
Ti)ul de date ad?ise Cn ca?). ')re exe?)lu2 nu se va )utea ?e?ora text Cntr%un c>?) cu ti)ul de
date Num"e.
')aiul alocat )entru ?e?orarea valorilor din c>?)
Ti)urile de o)eraii ce se vor execute cu valorile din ca?). ')re exe?)lu2 &icrosoft Access )oate
aduna valorile din c>?)urile Num"e sau Cuenc@2 dar nu i valorile din c>?)urile Te;t sau
+LE +"Aect.
(>?)urile de ti) Memo sau +LE +"Aect nu )ot fi sortate sau indexate.
(>?)urile Memo sau +LE +"Aect nu se )ot folosi )entru a gru)a articolele Cn cereri sau
ra)oarte.
Hntr%un c>?) Te;t2 nu?erele sunt sortate ca iruri de caractere ;12 1-2 1--2 ,2 ,-2 ,-- s.a.?.d.<2
nu ca valori nu?erice. Pentru a sorta nu?erele ca valori nu?erice se folosesc c>?)urile Num"e
sau Cuenc@. Fe ase?enea2 ?ulte for?ate de date calendaristice nu se vor sorta corect dac se
introduc Cntr%un c>?) Te;t1 Pentru a fi sortate corect se introduc nu?ai Cntr%un c>?) de ti)
&ateJTime.
Ti)urile de date ad?ise Cn &icrosoft Access2 ?odul lor de folosire i di?ensiunea de
?e?orare sunt )re/entate Cn ta4elul T1.
T21 Ti4ui de date admise ?ntBo "a-# de date Access
Tipul datei tilizare Spa!iul de memorie necesar
Te;t Text sau co?4inaie de text i nu?ere2 cu?
ar fi adresele. Fe ase?enea2 nu?ere ce nu
necesit calcule2 cu? ar fi nu?erele de
telefon2 nu?erele de )artid sau codurile
)otale.
P>n la ')) caractere.
&icrosoft Access ?e?orea/
nu?ai caracterele introduse Cn
c>?)L nu se ?e?orea/
caractere Ms)aiu" )entru
)o/iiile nefolosite. Pentru a
controla nu?rul ?axi? de
caractere ce )ot fi introduse se
setea/ )ro)rietatea FieldSi-e.
Memo Texte i nu?ere foarte lungi2 cu? ar fi notie P>n la C>,((( caractere.
5
sau descrieri.
Num"e Fate nu?erice folosite )entru calcule
?ate?atice2 cu exce)ia calculelor ce i?)un
valori ?onetare. Pentru a defini un anu?it ti)
Num"e setai )ro)rietatea FieldSi-e.
22 '2 > sau D 4*tes ;2C 4*tes
nu?ai )entru Re4lication I&<.
&ate0Time Fate calendaristice i ti?)i. D 4*tes.
Cuenc@ Valori ?onetare. 'e va folosi ti)ul de date
Cuenc@ )entru a )reveni rotunDirea )e
ti?)ul calculelor. Preci/ia ti)ului este de 1.
cifre la )artea Cntreag i : cifre la )artea
/eci?al.
D 4*tes.
AutoNum"e 0u?ere Cn secven unic ;din 1 Cn 1< sau
aleatoare care sunt auto?at inserate atunci
c>nd se adaug un articol.
> 4*tes ;2C 4*tes nu?ai )entru
Re4lication I&<.
Ees0No (>?)uri care vor conine nu?ai una din dou
valori2 cu? ar fi YesJNo2 TrueJFalse2 OnJO.
2 4it.
+LE +"Aect G4iecte ;cu? ar fi docu?ente &icrosoft
Aord2 foi de calcul &icrosoft 1xcel2 i?agini2
sunete sau alte date 4inare< create Cn alte
)rogra?e folosind )rotocolul G=12 ce )ot fi
Cnlnuite sau Cnca)sulate Cntr%o ta4el
&icrosoft Access. Tre4uie s se foloseasc
un cadru de o4iect legat Cntr%o ?achet sau
ra)ort )entru a afia o4iectul G=1.
P>na la 2 9$ ;li?itat de s)aiul
disc<.
Loo6u4
:i-ad
(rearea unui c>?) care )er?ite alegerea unei
valori dintr%o alt ta4el sau dintr%o list de
valori folosind o caset co?4o. Aleg>nd
aceast o)iune2 se lansea/ un Ai/ard care
diriDea/ crearea listei.
Acelai s)aiu ca i c>?)ul
cheii )ri?are folosit )entru a
executa exa?inarea2 Cn ?od
o4inuit > 4*tes.
Hn ta4elul T, sunt )re/entate ti)urile i ?ri?ea valorilor nu?erice ce )ot fi ?e?orate Cn
c>?)urile de ti) Num"e.
T'1 &ate de ti4 Num"e
"aloarea propriet#!ii
FieldSize
Domeniu $recizie Memorie necesar#
$@te ( la ')) 1 4*te
1-
Inte5e B=',FCD la =',FCF , 4*tes
Lon5 Inte5e B',2>F,>D=,C>D la ',2>F,>D=,C>F : 4*tes
Sin5le B=1>('D'=E=D la =1>('D'=E=D 6 : 4*tes
&ou"le B21FGFCG=2=>DC'='E=(D la
21FGFCG=2=>DC'='E=(D
1. 9 4*tes
Ceaea unei ta"ele
Hn &icrosoft Access exist dou ?etode de a creare a unei ta4ele i anu?e:
- se )oate crea o ta4el goal ;empt!< )entru a introduce dateleL
- se )oate crea o ta4el folosind datele existente Cntr%o alt surs de date.
Ceaea unei ta"ele 5oale
Hn &icrosoft Access exist )atru )rocedee )entru crearea unei ta4ele goale2 astfel:
H Database Wizard )entru a crea Cntr%o singur o)eraie toate ta4elele2 for?ularele i ra)oartele
necesare Cntregii 4a/e de date. Fata4ase Ai/ard creea/ o nou 4a/ de date. Acest )rocedeu nu
)oate fi folosit )entru a aduga noi ta4ele2 for?ulare sau ra)oarte Cntr%o 4a/ de date existent.
) Table Wizard )entru a alege c>?)urile ta4elei dintr%o varietate de ta4ele )redefinite2 cu? ar fi
contacte de afaceri2 inventare de cas sau articole ?edicale.
c DataS%eet )entru introducerea datelor direct Cntr%o foaie de date ;datas"eet<. =a salvarea foii
de date &icrosoft Access va anali/a datele i auto?at va atri4ui ti)ul de date i for?atul )entru
fiecare c>?).
f Design )entru a defini toate detaliile ta4elei.
#ndiferent de ?etoda care se folosete )entru crearea unei ta4ele2 se )oate utili/a vederea
Design )entru a ?odifica descrierea ta4elei2 )rin adugarea de noi c>?)uri2 sta4ilirea valorilor
i?)licite sau crearea ?tilor de introducere. Hn figura . este re)re/entat fereastra Design view
)entru crearea unei ta4ele.
11
Ceaea unei ta"ele <olosind Hedeea &esi5n1
Pentru a crea o ta4el folosind vederea Design se execut ur?toarele o)eraii:
1. 'e deschide Cn fereastra Database 4a/a de date Cn care se creea/ o nou ta4el2 dac ea nu este
deDa deschis. 'e )oate folosi tasta funcional F22 )entru a co?uta Cn fereastra Database din
orice alt fereastr.
2. 'e activea/ eticheta Ta"les i a)oi2 fie se selectea/ o)iunea Create table in Design view
;ve/i figura .<2 fie se execut clic )e 4utonul Ne8 ;ve/i figura 8< i Cn caseta de dialog New
Table2 ce a)are )e ecran ;ve/i figura 8<2 se va selecta o)iunea Design #ie$ i a)oi se execut
clic )e 4utonul +7.
3. Hn fereastra &esi5n Vie8 care a)are )e ecran ;ve/i figura .< se va defini fiecare c>?) al ta4elei.
4. Hnainte de a salva ta4ela2 se va defini o cheie )ri?ar )rin clic@ drea)ta )e nu?ele c>?)ului
cores)un/tor i selectare o)iune $rimar& 'e&. (heia )ri?ar )oate fi sta4ilit i ulterior.
5. Fu) definirea structurii ta4elei2 se execut clic )e 4utonul SaHe din 4ara 4utoanelor Standard
sau se selectea/ o)iunea SaHe din ?eniul File i a)oi se va tasta un nu?e )entru ta4el.
1,
Fi5ua ) Bereastra Design "iew a unei ta4ele
&e<iniea c*m4uilo
Pentru a defini c>?)uri Cn Design "iew se vor executa2 Cn general ur?toarele o)eraii:
1. Pentru adugarea unui c>?) Cn interiorul unei structuri deDa definite2 se selectea/ linia su4 care
se va aduga noul c>?) i a)oi se execut clic )e 4utonul Inset Ro8s din 4ara instru?entelor
Standard sau se selectea/ co?anda Ro8s din ?eniul Inset. Pentru a aduga c>?)ul la
sf>ritul structurii se execut clic Cn coloana Field Name a )ri?ei linii goale.
2. Hn coloana Field Name se tastea/ nu?ele c>?)ului2 res)ect>nd regulile &icrosoft Access
)entru denu?irea o4iectelor.
3. Hn coloana &ata T@4e2 se execut clic )e sgeat i se selectea/ ti)ul de dat dorit.
4. Hn coloana &esci4tion se )oate introduce o descriere a c>?)ului.
5. Hn foaia de configurare Field !o4eties se sta4ilesc caracteristicile c>?)ului ;di?ensiune2
?esaD de introducere2 valoarea i?)licit2 for?ate de afiare etc.<.
Algorit?ul )re/entat este vala4il )entru ur?toarele ti)uri de c>?)uri: Text2 &e?o2
0u?4er2 (urenc*2 NesJ0o2 FateJTi?e2 Auto0u?4er.
Re5uli de denumiea o"iectelo
0u?ele unui o4iect )oate avea ?axi?u? 8: caractere i )oate include orice co?4inaie de
litere2 cifre2 s)atii i caractere s)eciale2 exce)t>nd )unctul ;.<2 se?nul excla?rii ;O<2 a)ostroful ;P<
17
Fi5ua C (aseta de dialog New Table av>nd selectat o)iunea Design #ie$
i )arante/ele dre)te ;Q2R<. 1ste indicat s se evite folosirea s)atiilor Cn nu?ele o4iectelor i nu?e
foarte lungi )entru o4iecte dac acestea vor fi referite frecvent Cn ex)resii sau cod Visual 3asic.
!o4iet#ile c*m4uilo
Biecare c>?) are un set de )ro)rieti care se )ot folosi )entru a )ersonali/a ?odul Cn care
datele unui c>?) sunt stocate2 ?ani)ulate sau afiate. ')re exe?)lu2 se )oate controla nu?rul
?axi? de caractere ce se )ot introduce Cntr%un c>?) Te;t sta4ilind )ro)rietatea FieldSize a
acestuia. Pro)rietile care exist )entru fiecare c>?) de)ind de ti)ul de date care a fost selectat
)entru c>?)ul res)ectiv.
Pentru a ?odifica )ro)rietile unui c>?) se execut ur?toarele o)eraii:
1. 'e deschide ta4ela Cn vederea Design.
,. Hn )artea su)erioar a ferestrei Design se selectea/ c>?)ul ale crei )ro)rieti ur?ea/ a fi
?odificate.
7. 'e selectea/ )ro)rietatea a crei valoare vre? s%o ?odific? execut>nd clic Cn linia din
drea)ta nu?elui )ro)rietii ;Cn fila !eneral de su4 descrierea ta4elei<.
:. 'e re)et o)eraiile ' i = )entru toate )ro)rietile ale cror valori vre? s le ?odific?.
.. Fu) efectuarea tuturor ?odificrilor se Cnchide fereastra Design.
Hn ca/ul Cn care )entru un c>?) s%a ales ti)ul Loo6u4 :i-ad2 atunci se lansea/ un
Ai/ard )rin inter?ediul cruia )ute? reali/a o list de exa?inare care afiea/ datele dintr%o ta4el
;sau interogare< existent care conine deDa date2 sau dintr%o list de valori )resta4ilit du) cu?
este ilustrat Cn i?agiea de ecran din figura 6. Acest ti) de c>?) )er?ite selectarea valorilor dintr%o
ta4el sau list afiat2 Cn loc ca ele s fie tastate.
1:
Fi5ua F1 (aset de dialog (oo'up Wizard )entru crearea unei liste din valorile unei
ta4ele2 ;interogri<2 sau liste de valori
Lucae de la"oato n1 =
Tema3 $a-e de date ACCESS1 Ceaea c*m4uilo de ti4 Loo6u4 :i-ad
Un c>?) de ti)ul Loo6u4 :i-ad2 )er?ite reali/area i utili/area unei liste de exa?inare
care afiea/ datele dintr%o ta4el ;sau interogare< existent care conine deDa date2 sau dintr%o list
de valori )resta4ilit du) cu? este ilustrat Cn i?agiea de ecran din figura 6. Acest ti) de c>?)
)er?ite selectarea valorilor dintr%o ta4el sau list afiat2 Cn loc ca ele s fie tastate. Hn cele ce
ur?ea/ se vor )re/enta )aii de )arcurs )entru definirea unui astfel de c>?) )entru fiecare din
cele dou situaii.
Ceaea unui c*m4 4entu e;aminaea i a<iaea Haloilo dintBo ta"el# sau inteo5ae
Pentru a crea un c>?) care s afie/e valorile dintr%o ta4el sau interogare se execut
ur?toarele o)eraii:
1. Hn coloana Fata T*)e a c>?)ului2 se execut clic )e sgeat i selectea/ %ookup &izard din
lista afiat.
2. Hn )ri?a caset de dialog %ookup &izard ;ve/i fihgura 6< se selectea/ o)iunea # Iill the
loo@u) colu?n to loo@ u) the values Cn a ta4le or Suer* ;doresc o coloan de exa?inare )entru
a vi/uali/a valorile dintr%o ta4el sau interogare"< i a)oi se execut clic )e 4utonul 0ext )entru
a trece la ur?toarea caset de dialog.
3. Hn a doua caset de dialog %ookup &izard ;ve/i figura 9< se selectea/ ta4ela ;interogarea< care
va sta la 4a/a listei de exa?inare i care va tre4ui s existe i s conin date Cn c>?)ul
res)ectiv. 'e execut clic )e 4utonul 0ext )entru a trece la ur?toarea caset de dialog.
4. Hn a treia caset de dialog %ookup &izard ;ve/i figura 5< se vor selecta c>?)urile din ta4ela
exa?inat a cror valori se vor afia Cn lista de exa?inare. =ista de exa?inare va conine
c>?)urile ce se gsesc Cn lista 'elected Bields. Pentru a ?uta un c>?) din lista Availa4le Bields
Cn lista 'elected Bield se va selecta c>?)ul Cn lista Availa4le Bields i a)oi se va executa clic
)e 4utonul T. Fu) selectarea c>?)urilor )entru lista de exa?inare se va executa clic )e
4utonul 0ext )entru a trece la ur?toarea caset de dialog.
5. Hn a )atra caset de dialog (oo'up Wizard ;ve/i figura 1-< se sta4ilete as)ectul listei de
exa?inare. 'e reco?and activarea casetei de validare Iide 6e@ column )entru ca lista de
exa?inare s nu afie/e i coloana care conine cheia de legtur. Pentru a trece la ur?toarea
caset de dialog se execut clic )e 4utonul Ne;t.
8. Hn a cincea caset de dialog ;ve/i figura 11< se selectea/ coloana )entru )reluare.
7. Hn a asea caset de dialog Loo6u4 :i-ad ;ve/i figura 1,< se ?odific2 dac este necesar2
nu?ele c>?)ului de exa?inare i caseta de validare &is4la@ Iel4 on customi-in5 tJe loo6u4
column ;afiarea Uel)%ului la )ersonali/area coloanei de exa?inare"<. 'e execut clic )e
4utonul FinisJ )entru a ter?ina crearea c>?)ului de exa?inare.
1.
18
Fi5ua D1 A doua caset de dialog =oo@u) Ai/ard ;)entru selectare ta4el sau interogare<
Fi5ua G1 A treia caset de dialog =oo@u) Ai/ard ;)entru selectare c>?)uri )entru list<
Fi5ua 2(1 A )atra caset de dialog =oo@u) Ai/ard ;)entru as)ectul listei de exa?inare<
16
Fi5ua 221 A cincea caset de dialog =oo@u) Ai/ard ;)entru selectare coloan )entru )reluare<

Ceaea unui c*m4 4entu e;aminaea i a<iaea unei liste de Haloi
Pentru a crea o list de valori se execut ur?toarele o)eraii:
1. Hn coloana &ata T@4e a c>?)ului de exa?inare2 se execut clic )e sgeat i selectea/
%ookup &izard din lista afiat ;ve/i figura 17<.
2. Hn )ri?a caset de dialog (oo'up Wizard ;ve/i figura 1:< se selectea/ o)iunea I 8ill t@4e ?n
tJe Halues tJat I 8ant ;voi tasta valorile )e care le doresc"< i a)oi se execut clic )e 4utonul
Ne;t )entru a trece la ur?toarea caset de dialog.
3. Hn a doua caset de dialog (oo'up Wizard ;ve/i figura 1.< se va sta4ili nu?rul de coloane al
listei i se vor introduce valorile listei. 'e execut clic )e 4utonul Ne;t )entru a trece la
ur?toarea caset de dialog.
4. Hn a treia caset de dialog Loo6u4 :i-ad ;ve/i figura 18< se ?odific2 dac este necesar2
nu?ele c>?)ului de exa?inare i caseta de validare &is4la@ Iel4 on customi-in5 tJe loo6u4
column ;afiarea Uel)%ului la )ersonali/area coloanei de exa?inare"<. 'e execut clic )e
4utonul FinisJ )entru a ter?ina crearea c>?)ului de exa?inare.
19
Fi5ua 2'1 A asea caset de dialog =oo@u) Ai/ard
15
Fi5ua 2>1 (aset de dialog (oo'up Wizard )entru crearea unui c>?) )entru afiarea
unei liste
de valori
Fi5ua 2=1 'electare ti) de c>?) (oo'up Wizard
,-
Fi5ua 2)1 A doua caset de dialog (oo'up Wizard )entru crearea unei liste de valori
Fi5ua 2C1 A treia caset de dialog =oo@u) Ai/ard )entru crearea unei liste de valori
Lucae de la"oato n1 >
Tema3 $a-e de date ACCESS1 Ceaea ta"elelo "a-ei de date Funi-oiClienti1

Hn 4a/a de date Burni/ori(lieni se crea/ ur?toarele ta4ele:
'ROD()* +catalog de produse,
C*m4 Semni<icaie Ti4 dat# &imensiune +"seHaii
(od) (od )rodus 0u?4er2 #nteger : (heie )ri?ar
Fen) Fenu?ire )rodus Text ,-
Fes) Fescriere )rodus U*)erlin@
Refer docu?ent
cores)un/tor
ST+CURI ;stocurile de )roduse )e de)o/ite<
C*m4 Semni<icaie Ti4 dat# &imensiune +"seHaii
(od) (od )rodus
0u?4er2 #nteger
=oo@u) Ai/ard
: =oo@u) Ai/ard cu
ta4ela PRGFU'1
(odFe) (od de)o/it Text ,
U?) Unitate de ?sur
)rodus
=oo@u) Ai/ard 9
(reare i utili/are list
de valori
(ant (antitate 0u?4er2 #nteger :
Pret Pre unitar 0u?4er2
=ong#nteger
9
F(RNI-ORI +catalog de urnizori,
C*m4 Semni<icaie Ti4 dat# &imensiune +"seHaii
(odf (od furni/or 0u?4er2 #nteger : (heie )ri?ar
Fenf Fenu?ire furni/or Text 7-
Adresaf Adresa furni/or Text ,.
C%I*NTI +catalog de clien.i,
C*m4 Semni<icaie Ti4 dat# &imensiune +"seHaii
(odc (od client 0u?4er2 #nteger : (heie )ri?ar
Fenc Fenu?ire client Text 7-
Adresac Adresa client Text ,.
,1
+FERTE ;oferte de )roduse de la furni/ori<
C*m4 Semni<icaie Ti4 dat# &imensiune +"seHaii
(odf (od furni/or
0u?4er2 #nteger
=oo@u) Ai/ard
: =oo@u) Ai/ard cu
ta4ela BUR0#VGR#
(od) (od )rodus
0u?4er2 #nteger
=oo@u) Ai/ard
: =oo@u) Ai/ard cu
ta4ela PRGFU'1
U?) Unitate de ?sur
)rodus
=oo@u) Ai/ard 9
(reare i utili/are list
de valori
Pret Pre unitar 0u?4er2
=ong#nteger
9
Fatao Fata ofertei Fate 9
Gferta Gferta furni/or U*)erlin@
Refer docu?ent
cores)un/tor
VAN%ARI ;v>n/rile de )roduse )e clieni<
C*m4 Semni<icaie Ti4 dat# &imensiune +"seHaii
(odc (od furni/or
0u?4er2 #nteger
=oo@u) Ai/ard
: =oo@u) Ai/ard cu
ta4ela (=#10T#
(od) (od )rodus
0u?4er2 #nteger
=oo@u) Ai/ard
: =oo@u) Ai/ard cu
ta4ela PRGFU'1
U?) Unitate de ?sur
)rodus
=oo@u) Ai/ard 9
(reare i utili/are list
de valori
(ant (antitate 0u?4er2 #nteger :
Pret Pre unitar 0u?4er2
=ong#nteger
9
Fatav Fata v>n/rii Fate 9
Hn i?aginea de ecran din figura 16 sunt evideniate ta4elele 4a/ei de date FurnizoriClienti
i este re)re/entat descrierea ta4elei $roduse.
Hn ?od ase?ntor i confor? )reci/rilor din ta4elele de ?ai sus2 se vor defini i celelalte
ta4ele Cn 4a/a de date i se vor Cncrca date )entru diverse )roduse2 )reuri2 furni/ori2 clieni.
Pentru ?odificarea structurii unei ta4ele se va deschide ta4ela Cn ?odul Design.
Pentru )releare sau actuali/are date Cntr%o ta4el se va deschide ta4ela Cn ?odul )pen.
,,
,7
Lucae de la"oato n1 )
Tema3 $a-e de date ACCESS1 Inteo5#i1
Ceaea i utili-aea inteo5#ilo
#nterogrile se folosesc )entru a vi/uali/a2 ?odifica i anali/a datele Cn diverse ?oduri. Fe
ase?enea2 ele )ot fi utili/ate ca surs de articole )entru for?ulare i ra)oarte. Pentru a crea un
ra)ort Cn care sunt utili/ate anu?ite date dintr%o ta4el sau date din ?ai ?ulte ta4ele se va crea ?ai
Cnt>i interogarea cores)un/toare i a)oi se va defini ra)ortul utili/>nd acea interogare.
1xist ?ai ?ulte ti)uri de interogri2 dar cel ?ai utili/at ti) este interogarea de selecie.
#nterogarea )oate fi creat folosind un Ai/ard sau )rin )roiectare Cn vederea Design a
interogrii. Hn vederea Design2 se s)ecific datele cu care se va lucra )rin adugarea ta4elelor sau
interogrilor ce conin acele date i se co?)letea/ celulele din reeaua de )roiectare.
Hn &icrosoft Access exist ur?toarele ti)uri de interogri:
B Inteo5ae de selecie regsete datele din una sau ?ai ?ulte ta4ele i afiea/ re/ultatele Cntr%o
foaie de date2 unde se )ot ?odifica articolele ;cu anu?ite restricii<. Fe ase?enea2 se )oate folosi o
interogare de selecie )entru a gru)a articolele i a efectua Cnsu?ri2 contori/ri2 ?edii arit?etice i
alte ti)uri de totali/ri.
B Inteo5ae cu 4aametu 1ste o interogare care la execuie afiea/ )ro)ria sa caset de dialog
)rin care se solicit introducerea unor infor?aii su)li?entare2 cu? ar fi criteriul )entru regsirea
articolelor sau valoarea care se inserea/ Cntr%un c>?). 'e )oate )roiecta interogarea )entru a
solicita ?ai ?ult de o singur co?)onent a infor?aieiL s)re exe?)lu2 se )oate )roiecta
interogarea )entru a solicita dou date. A)oi2 &icrosoft Access )oate regsi toate datele cu)rinse
Cntre cele dou valori.
Fe ase?enea2 interogrile cu )ara?etru sunt utile i atunci c>nd sunt folosite ca 4a/ )entru
for?ulare i ra)oarte. ')re exe?)lu2 se )oate crea un ra)ort de v>n/ri lunare 4a/at )e o interogare
cu )ara?etru ;luna<. Atunci c>nd se va ti)ri ra)ortul2 &icrosoft Access va afia2 ?ai Cnt>i2 o caset
de dialog Cn care se solicit luna )entru care se dorete ra)ortul.
Fe ase?enea2 se )oate crea un for?ular )ersonali/at sau o caset de dialog )entru
)ara?etrii interogrii Cn loc s se foloseasc casetele de dialog ale interogrii cu )ara?etru.
B Inteo5ae de ti4 cossta" #nterogarea de ti) crossta4 afiea/ valori re/u?ative ;totaluri2
contori/ri i ?edii arit?etice< din unul din c>?)urile ta4elei i le gru)ea/ du) un set de factori
listai Cn Dos )e latura din st>nga foii de calcul i du) un alt set de factori listai de%a lungul )rii
su)erioare a foii de date.
B Inteo5ae de aciune 1ste o interogare care )er?ite ?odificarea ?ai ?ultor articole Cntr%o
singur o)eraie. 1xist )atru ti)uri de interogri de aciune:
1. Interogare de /tergere Per?ite tergerea unui gru) de articole din una sau ?ai ?ulte ta4ele.
')re exe?)lu2 se )oate folosi o astfel de interogare )entru a eli?ina toate )rodusele cu stoc -
sau acelea care nu sunt co?andate. Utili/area acestui ti) de interogri2 eli?in Cntotdeauna
articolele Cntregi2 nu doar c>?)urile selectate din articole.
2. Interogare de actualizare Asigur ?odificarea glo4al a unui gru) de articole din una sau ?ai
?ulte ta4ele. ')re exe?)lu2 se )ot ?ri )reurile de v>n/are cu 1-W )entru toate )rodusele
dintr%o anu?it categorie.
3. Interogare de adugare Adaug un gru) de articole din una sau ?ai ?ulte ta4ele la sf>ritul
uneia sau a ?ai ?ultor ta4ele. ')re exe?)lu2 s )resu)une? s%au identificat c>iva noi clieni i
4a/a de date cu infor?aii des)re aceti clieni. Pentru a evita tastarea tuturor infor?aiilor2
,:
acestea se )ot aduga la sf>ritul ta4elei Clieni. Fe ase?enea2 interogrile de adugare sunt
utile )entru:
- Adugarea c>?)urilor )e 4a/a unui criteriu. ')re exe?)lu2 este )osi4il ca la co?en/ile
nere/olvate s se adauge nu?ai nu?ele i adresa clienilor.
- Adugarea articolelor atunci c>nd unele c>?)uri dintr%o ta4el nu exist Cntr%o alt
ta4el. G interogare de actuali/are va aduga date nu?ai Cn c>?)urile identice i le va
ignora )e celelalte.
4. Interogare pentru creare tabele (reea/ o nou ta4el din toate datele sau nu?ai dintr%o )arte
a datelor2 din una sau ?ai ?ulte ta4ele. #nterogrile )entru crearea ta4elelor se )ot utili/a
)entru:
% (rearea unei ta4ele )entru a o ex)orta Cntr%o alt 4a/ de date &icrosoft Access. ')re
exe?)lu2 este )osi4il s fie creat o ta4el ce conine ?ai ?ulte c>?)uri din ta4ela AngaDai i a)oi
aceasta s fie ex)ortat Cntr%o 4a/ de date folosit de de)arta?entul )ersonal.
% (rearea de ra)oarte care s afie/e datele Cnce)>nd cu o dat s)ecificat. ')re exe?)lu2 sa
)resu)une? c se dorete ti)rirea unui ra)ort )e 1. &ai ,--, care s afie/e totalul v>n/rilor din
)ri?ul tri?estru2 4a/at )e datele care au fost Cn ta4ele de 4a/ )>n la -1.-:.,--,2 5.-- A.&. Un
ra)ort 4a/at )e o interogare sau instruciune 'E= extrage cele ?ai recente date din ta4ele ;)>n la
1. &ai ,--,<2 Cn loc s extrag toate articolele av>nd data i ti?)ul s)ecificat. Pentru ca datele s
fie exact cu? au fost ele la 1 A)rilie ,--,2 5.-- A.&.2 este necesar s se cree/e o interogare care s
regseasc articolele res)ective i s le stoche/e Cntr%o nou ta4el. A)oi aceast ta4el se folosete2
Cn locul unei interogri2 ca 4a/ a ra)oartelor.
% (rearea co)iei de siguran a unei ta4ele.
'e )oate crea o ta4el istoric" care s conin toate articolele. ')re exe?)lu2 se )oate crea o ta4el
care s conin toate v>n/rile efectuate2 Cnainte de a le terge din ta4ela curent.
% (reterea )erfor?anei for?ularelor i ra)oartelor 4a/ate )e interogri cu ta4ele ?ulti)le
sau instruciuni 'E=. ')re exe?)lu2 s )resu)une? c dori? ti)rirea ?ai ?ultor ra)oarte ce sunt
4a/ate )e interogri cu cinci ta4ele ce includ totaluri. 'e )oate ?ri vite/a de execuie dac ?ai
Cnt>i se reali/ea/ o interogare care s regseasc articolele necesare i s le ?e?ore/e Cntr%o
ta4el. A)oi2 se vor 4a/a ra)oartele )e aceast ta4el sau se va s)ecifica ta4ela Cntr%o instruciune
'E= ca surs de articole )entru un for?ular sau ra)ort2 astfel Cnc>t s nu se reia interogarea )entru
fiecare ra)ort. Fatele din ta4el vor fi 4locate Cn ti?) ce se rulea/ interogarea de creare a ta4elei.
#nterogare 'E= este o interogare ce se creea/ )e 4a/a unei instruciuni 'E=. 1xist ur?toarele
ti)uri s)ecifice de interogri 'E=:
1. Interogare reuniune ;union 0uer!< Acest ti) de interogare co?4in c>?)urile ;coloanele<
din una sau ?ai ?ulte ta4ele sau interogri Cntr%un singur c>?) sau coloan din re/ultatele
interogrii. ')re exe?)lu2 dac exist ase v>n/tori care trans?it listele de v>n/arere )e
luni2 se )ot co?4ina aceste c>?)uri Cntr%un singur set folosind o interogare reuniune i a)oi
se )oate crea o interogare de creare ta4el 4a/at )e interogarea reuniune )entru a o4ine o
nou ta4el. #nterogarea de acest ti) const din instruciuni 'E= '1=1(T.
2. Interogare intersec.ie ;pass1t"roug" 0uer!< Acest ti) de interogri trans?ite co?en/ile
direct la 4a/ele de date GF3(2 cu? ar fi &icrosoft 'E= 'erver2 folosind co?en/ile care
sunt acce)tate de ctre server. ')re exe?)lu2 se )oate folosi o interogare intersecie )entru
a regsi articole i a ?odifica datele.
3. Interogare de deinire date ;data1deinition 0uer!< Acest ti) de interogare creea/ sau
alterea/ o4iectele 4a/ei de date2 cu? ar fi ta4elele &icrosoft Access sau &icrosoft 'E=
'erver.
,.
4. )ubinterogare ;sub0uer!< Acest ti) de interogri constau dintr%o instruciune 'E=
'1=1(T Cn interiorul unei interogri de selecie sau de aciune. 'e )ot introduce aceste
instruciuni Cn linia Field a reelei de )roiectare a interogrii )entru a defini un nou c>?)
sau Cn linia Citeia )entru a defini criteriul )entru un c>?). 'u4interogrile se )ot utili/a
)entru:
% A testa existena unui anu?it re/ultat din su4interogare ;folosind cuvintele re/ervate 1X#'T'
sau 0GT 1X#'T'<.
% !sirea tuturor valorilor care sunt egale cu2 ?ai ?ari ca sau ?ai ?ici dec>t valorile returnate
de ctre su4interogare ;folosind cuvintele re/ervate A0N2 H0 sau A==<.
% (rearea de su4interogri Cn su4interogri ;su4interogri i?4ricate<.
Hn cele ce ur?ea/ este ilustrat ?odul de definire a unei interogri de selecie )entru situaia
stocurilor de )roduse utili/>nd ta4elele Produse2 'tocuri.
'e selectea/ *eries i a)oi New2 iar din caseta New *uer& se selectea/ ?odul Design
"iew ;ve/i figura 19< i se a)as 4utonul )+. Va a)are ecranul din figura 15.
Fin caseta S%ow Table se selectea/ ta4ela $roduse i se a)as 4utonul Add2 a)oi se
selectea/ ta4ela Stocuri i se a)as 4utonul Add i a)oi se a)as 4utonul Close. Va a)are ecranul
din figura ,- )entru definirea c>?)urilor interogrii ilustrate Cn i?aginea de ecran din figura ,1.
Pentru salvare interogare se Cnchide fereastra *uer& i se tastea/ nu?ele interogrii Situatia
Stocurilor. Pentru vi/uali/area datelor cores)un/toare interogrii2 se selectea/ interogarea i se
deschide Cn ?odul )pen ;re/ultatul este ilustrat Cn figura ,,.
,8
Fi5ua 2D1 (reare interogare Cn ?odul Design "iew.
,6
Fi5ua 2G1 'electare ta4ele )entru creare interogare.
Fi5ua '(1 (aseta *uer& )entru definirea c>?)urilor interogrii.

,9
Fi5ua '21 Fefinirea interogrii 'ituatia 'tocurilor.
Fi5ua ''1 Vi/uali/area datelor cores)un/toare interogrii Situatia Stocurilor
!o"leme 4o4use
' se cree/e interogrile cores)un/toare situaiei ofertelor de )roduse i situaiei v>n/rilor
de )roduse confor? s)ecificaiilor de ?ai Dos.
Situa!ia ofertelor
Situa!ia v,nz#rilor
'e vor crea i interogri cu )ara?etru Cn care )ara?etrul va fi2 )e r>nd:
- furni/orulL
- )rodusul
)entru situaia ofertelor i:
- clientulL
- )rodusulL
- )erioada
)entru situaia v>n/rilor.
C,mp (odf Fenf Adresaf (od) Fen) U?) Pret Fatao
Tabela Burni/ori Burni/ori Burni/ori Produse Produse Gferte Gferte Gferte
C,mp (odc Fenc Adresac (od) Fen) U?) (ant Pret Valoare Fatav
Tabel
a
(lienti (lienti (lienti Produse Produse Van/ari Van/ari Van/ari (antYPre
t
Van/ari
,5
Lucae de la"oato n1 C1
Tema3 $a-e de date ACCESS1 Fomulae1
Ceaea i utili-aea <omulaelo1
Hn &icrosoft Access for?ularele se )ot folosi )entru a crea:
- un ecran )entru introducerea datelor Cn una sau ?ai ?ulte ta4eleL
- un ecran ti) )anou de co?utatoare" )entru a deschide alte for?ulare sau ra)oarteL
- o caset de dialog care s solicite de la utili/ator infor?aii su)li?entare necesare
executrii unei aciuni.
&aDoritatea infor?aiilor dintr%un for?ular )rovin dintr%o surs de infor?aii2 dar exist i
infor?aii care se introduc la )roiectarea ?achetei. =egtura dintre for?ular i sursa de date se
reali/ea/ )rin inter?ediul unor o4iecte grafice2 nu?ite controale. (ele ?ai utili/ate controale sunt
casetele de text2 cu aDutorul crora se )ot afia fie infor?aiile dintr%o surs de date2 fie re/ultatele
evalurii unei ex)resii.
Un for?ular )oate fi creat Cn dou ?oduri i anu?e:
- Cn ?odul Design viewL
- utili/>nd un wizard.
Un Ii/ard )oate fi utili/at Cn ?odurile ;figura ,72 caseta New Form care a)are la a)sarea
4utonului New din fereastra Database<:
Bor? Ai/ard2 AutoBor?: (olu?nar2 AutoBor?: Ta4ular2 (hart Ai/ard2 Pivot Ta4le Ai/ard.
Gdat creat2 un for?ular )oate fi ?odificat i Cn acest sens se deschide for?ularul Cn ?odul
Design )entru a%l ?odifica aa cu? se dorete.
Pentru crearea unui singur for?ular si?)lu2 )e o singur coloan2 se )oate utili/a o)iunea
AutoForm-
Pentru ca for?ularul s )oat afia c>?)urile ta4elei ;interogrii< selectate2 tre4uie adugate
controale ;casete de text2 casete co?4inate2 liste etc.< Cn ?acheta acestuia. Pentru a )utea aduga
controale este necesar ca )e ecran s existe caseta cu instru?ente Toolbo. i fereastra (ist Field.
Fac aceste o4iecte nu sunt afiate )e ecran2 atunci va tre4ui ca din ?eniul "iew s se selecte/e
o)iunile Toolbo.2 )entru a afia caseta instru?entelor Toolbo.2 res)ectiv Field (ist )entru a afia
lista c>?)urilor. Fu) adugarea controalelor i sta4ilirea )ro)rietilor for?ularului2 se Cnchide
for?ularul i i se d un nu?e.
Su"<omulae
'u4for?ularul este un for?ular Cn interiorul altui for?ular. Bor?ularul )ri?ar este denu?it
for?ular )rinci)al ;main orm<2 iar for?ularul din interiorul for?ularului este nu?it subormular.
(o?4inaia for?ularJsu4for?ular este referit adeseori ca for?ular ierarhic2 for?ular
)rinci)alJdetaliu sau for?ular )rinteJco)il.
'u4for?ularele sunt eficiente Cn s)ecial )entru )re/entarea datelor din ta4ele sau interogri
cu relaii 2m ;one1to1man!<. ')re exe?)lu2 se )oate crea un for?ular cu un su4for?ular )entru a
)re/enta datele din ta4elele $roduse i Stocuri. Fatele din ta4ela $roduse re)re/int )artea 2" din
relaie2 iar datele din ta4ela Stocuri re)re/int )artea m" din relaie fiecare )rodus )ut>nd avea
?ai ?ulte Cnregistrri Cn ta4ela Stocuri.
Bor?ularul )rinci)al i su4for?ularul din acest ti) de for?ulare sunt Cnlnuite2 astfel Cnc>t
su4for?ularul afiea/ nu?ai Cnregistrrile care sunt corelate cu Cnregistrarea curent din
7-
for?ularul )rinci)al. ')re exe?)lu2 atunci c>nd for?ularul )rinci)al afiea/ )rodusul Tastatur#2
su4for?ularul afiea/ nu?ai stocurile )entru acest )rodus.
Atunci c>nd se folosete un for?ular cu un su4for?ular )entru a introduce noi Cnregistrri2
&icrosoft Access salvea/ Cnregistrarea curent din for?ularul )rinci)al c>nd se intr Cn
su4for?ular. Aceasta asigur ca Cnregistrrile din ta4ela m" ;?ai ?uli< s ai4 o Cnregistrare Cn
ta4ela 1" ;unul< cu care s se corele/e. Fe ase?enea2 acesta salvea/ auto?at fiecare Cnregistrare
adugat Cn su4for?ular.
'u4for?ularul )oate fi afiat ca o foaie de date2 sau ca un for?ular singular sau continuu.
Bor?ularul )rinci)al )oate fi afiat nu?ai ca un for?ular singular. Bor?ularul )rinci)al )oate
avea oric>te su4for?ulare2 dac se )lasea/ fiecare su4for?ular )e for?ularul )rinci)al. Fe
ase?enea2 se )ot reali/a cel ?ult dou nivele de su4for?ulare. Aceasta Cnsea?n c )oate exista un
su4for?ular Cntr%un for?ular )rinci)al i un alt su4for?ular Cn interiorul su4for?ularului2 de nivel
1. ')re exe?)lu2 )oate exista un for?ular )rinci)al care afiea/ clienii2 un su4for?ular care
)re/int )rodusele i un alt su4for?ular care afiea/ v>n/rile )entru acele )roduse i clieni.
Una din ?etodele utili/ate )entru crearea unui su4for?ular Cn cadrul unui for?ular const
Cn efectuarea ur?toarelor o)eraii:
- se crea/ un for?ular )rinci)al i un su4for?ular i se salvea/ fiecare se)aratL
- se deschide for?ularul )rinci)al Cn ?odul DesignL
- se trage cu ?ouse%ul su4for?ularul din fereastra Database )este for?ularul )rinci)al.
Hn figurile ,:2Z2,5 sunt ilustrai )aii )arcuri )entru crearea for?ularului )rinci)al
$roduse utili/>nd ?odul Form Wizard- Analog se )rocedea/ )entru crearea su4for?ularului
Stocui1 Hn figura 7- este ilustrat re/ultatul tragerii su4for?ularului Stocuri )este for?ularul
$roduse. Feschiderea for?ularului $roduse Cn ?odul )pen )er?ite vi/uali/area i actuali/area
at>t a datelor din ta4ela $roduse c>t i a datelor cores)un/toare din ta4ela Stocuri aa cu? este
ilustrat Cn i?aginea de ecran din figura 71.
71
Fi5ua '=1 Bereastra Database. &odaliti de creare a unui for?ular ;(aseta New Form<.
7,
Fi5ua '>1 (reare for?ular $roduse ;)asul 1<
Fi5ua ')1 (reare for?ular $roduse ;)asul ,<
77
Fi5ua 'C1 (reare for?ular $roduse ;)asul 7<
Fi5ua 'F1 (reare for?ular $roduse ;)asul :<
7:
Fi5ua 'D1 (reare for?ular $roduse ;)asul .<
Fi5ua 'G1 Vi/uali/are for?ular $roduse.
!o"leme 4o4use
Utili/>nd ?etoda )re/entat ?ai sus2 s se cree/e ur?toarele for?ulare:
- for?ularul Burni/ori cu su4for?ularul GferteL
- for?ularul (lieni cu su4for?ularul V>n/riL
- for?ularul Produse'GV cu su4for?ularele 'tocuri2 Gferte2 V>n/ri.
7.
Fi5ua =(1 Fe)unere su4for?ular Stocuri Cn for?ular $roduse.
Fi5ua =21 Utili/are for?ular $roduse )entru vi/uali/are i actuali/are date Cn ta4elele
$roduse i Stocuri.
Lucae de la"oato n1 F
Tema3 $a-e de date ACCESS1 Ra4oate1
Ceaea i Hi-uali-aea a4oatelo
Ra)oartele au Cn vedere )relucrarea unor date din 4a/a de date )entru o4inerea unor situaii
ce ur?ea/ a fi ti)rite sau afiate )e ecran la cererea utili/atorului. ')re deose4ire de for?ulare
care )e l>ng vi/uali/area datelor )er?ite i actuali/area acestora2 ra)oartele reali/ea/ interogarea
i )relucrarea datelor din 4a/a de date nefiind )osi4il ?odificarea datelor.
1xist dou ?odaliti de creare a ra)oartelor i anu?e ;figura 7,<:
- creare ra)ort Cn ?odul Design viewL
- creare ra)ort utili/>nd un wizard.
Un Ii/ard )oate fi utili/at Cn ?odurile ;figura 7,2 caseta New /eport care a)are la a)sarea
4utonului New din fereastra Database<:
- Re)ort Ai/ardL
- AutoRe)ort: (olu?nar:
- AutoRe)ort: Ta4ularL
- (hart Ai/ardL
- =a4el Ai/ard.
Hn cele ce ur?ea/ se vor )re/enta )aii de )arcurs )entru reali/area unui ra)ort Cn ?odul
/eport Wizard.
78
Fi5ua ='1 Bereastra Database. &odaliti de creare a unui ra)ort ;(aseta New /eport<.
1. Hn caseta de dialog C%oose t%e table or 0uer&1 se selectea/ ta4ela sau interogarea )e care se
va funda?enta ra)ortul i se a)as 4utonul )+ ;figura 772 'ituaia 'tocurilor<.
,. 'electare c>?)uri )entru ra)ort din lista Available Fields Cn lista Selected Fields folosind
4utoanele 2 sau 22 2 du) care se a)as 4utonul Ne.t ;figura 7:<.
7. 'electare ?od ;ta4el< )entru vi/uali/are date2 du) care se a)as 4utonul Ne.t ;figura 7.<.
:. 'electare nivele de gru)are date Cn ra)ort2 du) care se a)as 4utonul 3rouping )ptions )entru
a )reci/a ?odul de gru)are2 a)oi se a)as 4utonul Ne.t ;figura 78<.
.. Preci/are criterii de ordonare date Cn ra)ort2 du) care se a)as 4utonul Sumar& )ptions )entru
)reci/area o)eraiilor de efectuat asu)ra gru)urilor de Cnregistrri ;figura 76<.
8. Preci/are o)eraii de efectuat asu)ra gru)urilor de Cnregistrri2 du) care se a)as 4utonul )+
;figura 79< i a)oi 4utonul Ne.t.
6. Hn casetele =a*out2 Grientation2 se selectea/ for?a de reali/are a ra)ortului ;figura 75< i a)oi
se a)as 4utonul Ne.t.
9. 'e selectea/ stilul de reali/are a ra)ortului2 a)oi se a)as 4utonul Ne.t ;figura :-<.
5. Preci/are titlu ra)ort2 du) care se a)as 4utonul Finis% ;figura :1<.
Hn figura :, este vi/uali/at ra)ortul o4inut. Pentru ?odificarea ra)ortului2 acesta tre4uie deschis Cn
?odul Design i a)oi se execut ?odificrile dorite.
!o"leme 4o4use
Fu) exe?)lul )re/entat2 s se cree/e ur?toarele ra)oarte utili/>nd ?odul /eport Wizard:
Situa!ia ofertelor de produse pe produs
(od )rodus Fenu?ire )rodus
(od furni/or Fenu?ire furni/or Adresa furni/or U?) Pret Fata ofertei
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ.
ZZZZZZZZZZZ..
Situa!ia ofertelor de produse pe furnizor
(od furni/or Fenu?ire furni/or Adresa furni/or
(od )rodus Fenu?ire )rodus U?) Pret Fata ofertei
ZZZZZZZZZZZZZZZZZZZZZ
ZZZZZZZZZZZZZZZZZZZ.
Situa!ia v,nz#rilor de produse pe produs
(od )rodus Fenu?ire )rodus
(od client Fenu?ire client Adresa client U?) (antitate Pret Valoare Fata v>n/rii
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ.
Total )rodus xxxxxxx xxxxxx
ZZZZZZZZZZZZZZ
Total general xxxxxx
Situa!ia v,nz#rilor de produse pe client
(od client Fenu?ire client Adresa client
(od )rodus Fenu?ire )rodus U?) (antitate Pret Valoare Fata v>n/rii
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
Total client xxxxxx
ZZZZZZZZZZZZZZZZZZZ..
Total general xxxxxx
76
79
Fi5ua ==1 &odul /eport Wizard )electare tabel sau interogare pentru raport .
Fi5ua =>1 &odul /eport Wizard )electare c3mpuri pentru raport .
75
Fi5ua =)1 &odul /eport Wizard- )electare mod +tabel, dup care 4or i 4izualizate datele5
Fi5ua =C1 &odul /eport Wizard- )electare ni4ele de grupare date 6n raport5
:-
Fi5ua =F1 &odul /eport Wizard- 'recizare criterii de ordonare date 6n raport5
Fi5ua =D1 &odul /eport Wizard- 'recizare opera.ii de eectuat asupra grupurilor de 6nregistrri5
:1
Fi5ua =G1 &odul /eport Wizard- 'recizare ormat de realizare raport5
Fi5ua >(1 &odul /eport Wizard- )electare stil de realizare raport5
:,
Fi5ua >21 &odul /eport Wizard- 'recizare titlu raport5
Fi5ua >'1 &odul /eport Wizard- #izualizare raport Situa!ia stocurilor de produse5
Lucae de la"oato n1 D
Tema3 $a-e de date Fo;!o1 Ceae ta"ele, intoducee i editae date ?n ta"ele1
Fo;!o este un )rodus )entru crearea i gestionarea 4a/elor de date relaionale de
co?)lexitate ?edie2 ela4orat iniial de fir?a Box 'oftIare i )reluat ulterior i de/voltat de ctre
co?)ania &icrosoft Cnce)>nd cu versiunea ,.8 su4 AindoIs ;1595 155:< i cotinu>nd cu
versiuni Visual BoxPro: 7.-2 ..-2 8.-2 6.-2 9.-2 5.-2 versiunea 5.- fiind dis)oni4il Cnce)>nd din anul
,--:.
Progra?ul Visual BoxPro este un instru?ent )uternic2 interactiv2 de gestionare a datelor2
?ediul Visual BoxPro )er?i>nd crearea a)licaiilor2 utili/area tehnicilor de )rogra?are orientat
s)re o4iecte i condus de eveni?ente2 faciliti ce s)oresc la ?axi?u? )roductivitatea Cn
)rogra?are. Fei Visual BoxPro este co?)ati4il cu )rogra?area )rocedural standard2 noile
extensii ale li?4aDului ofer )uterea i flexi4ilitatea )rogra?rii orientate s)re o4iect. ')re
deose4ire de )rogra?area )rocedural Cn care un )rogra? const dintr%o secven de instruciuni2
)roiectarea i )rogra?area orientate s)re o4iect re)re/int o a4ordare nou Cn care efortul de
)rogra?are const Cn )roiectarea o4iectelor co?)onente de sine stttoare ale unei a)licaii.
G4iectele Cn ?ediul Visual BoxPro sunt for?ularele i controalele care )ot fi gestionate )rin
inter?ediul )ro)rietilor2 eveni?entelor i ?etodelor i care vor fi incluse Cn a)licaii. 1xtensiile
orientate s)re o4iect ale li?4aDului Visual BoxPro )er?it crearea i Cntreinerea cu uurin a
4i4liotecilor de cod reutili/a4il. Progra?area orientat s)re o4iect este o ?odalitate de a C?)acheta
codul astfel Cnc>t s )oat fi refolosit i Cntreinut ?ai uor. Pri?ul nivel de C?)achetare se
nu?ete clas. G a)licaie este construit din clase i o4iecte. (lasele descriu )ro)rietile i
co?)orta?entul o4iectelor care se ?ai nu?esc i instane ale clasei. Un o4iect are anu?ite
)ro)rieti2 sau atri4ute. Fe exe?)lu2 un auto?o4il are o anu?it denu?ire i o anu?it culoare.
Aceste )ro)rieti )ot fi sta4ilite Cn fa/a de )roiectare sau de execuie.
G ta4el Visual BoxPro )oate exista Cn una din ur?toarele dou situaii: ca ta4el li4er
;extern<2 adic su4 for? de fiier .d4f neasociat vreunei 4a/e de date2 sau ca ta4el dintr%o 4a/ de
date2 adic su4 for? de fiier .d4f asociat unei 4a/e de date. Ta4elele asociate unei 4a/e de date au
unele )ro)rieti s)ecifice2 care nu exist Cn cadrul ta4elelor externe2 cu? ar fi regulile la nivel de
c>?) i de Cnregistrare2 declanatoarele i relaiile )ersistente. =a crearea 4a/ei de date2 se reunesc
ta4elele Cntr%o singur colecie ;fiier cu extensia .d4c< i se creea/ dicionarul de date.
Produsul BoxPro dis)une de un li?4aD de )rogra?are )ro)riu denu?it BoxPro care conine
)este ,-- co?en/i care )ot fi executate individual din fereastra de co?en/i sau din )rogra?e2
)entru crearea2 Cntreinerea i interogarea 4a/elor de date2 )recu? i o ?ultitudine de funcii
?ate?atice2 de conversie2 de )relucrri statistice2 etc. 2 care )ot fi a)elate Cn cadrul instruciunilor
li?4aDului.
Hn ?odelarea unei )ri a lu?ii reale se identific ti)urile de entiti ;?uli?ile de o4iecte
si?ilare av>nd aceleai )ro)rieti< i legturile ;relaiile< Cntre entiti. Biecrui ti) de entitate Ci
cores)unde un ta4el Cn care fiecare coloan cores)unde unei )ro)rieti ce definete ti)ul de entitate
i fiecare r>nd re)re/int o entitate a)arin>nd ti)ului res)ectiv de entitate. (a)ul de ta4el conine
denu?irea )ro)rietilor ce definesc ti)ul de entitate. (ores)un/tor acestui ti) de entitate2 Cn
BoxPro se va crea o ta4el care va conine:
% o Cnregistrare antet cores)un/toare ca)ului de ta4el ;structura ta4elei<L
% c>te o Cnregistrare )entru fiecare r>nd al ta4elului ;Cn BoxPro )entru A#0FGA' lungi?ea
?axi? a unei Cnregistrri )oate fi de 8..-- caractere<.
:7
(oloanele ta4elei create se vor nu?i c>?)uri2 iar r>ndurile se vor nu?i Cnregistrri. (ores)un/tor
ta4elei se va crea un fiier care va avea un nu?e )reci/at de utili/ator ;1x: 'roduse< i extensia
5db. Hnregistrarea antet cores)un/toare ca)ului de ta4el va conine denu?irea fiecrei coloane
;c>?)<2 ti)ul datelor din coloan2 li?ea Cn nu?r de caractere i eventual nu?rul de /eci?ale
)entru c>?)urile nu?erice.
G 4a/ de date BoxPro este un ansa?4lu de astfel de ta4ele )rin care se descriu entitile i
legturile dintre entiti ce se definesc )entru re/olvarea unei )ro4le?e date.
Av>nd Cn vedere fa)tul c la deschiderea unei sesiuni de lucru BoxPro directorul curent este
directorul Cn care este instalat )rodusul BoxPro2 )ri?a o)eraiune care tre4uie efectuat este
)o/iionarea Cn directorul de lucru ;directorul Cn care se va crea 4a/a de date<2 o)eraiune care se
reali/ea/ cu co?anda: '1T F1BAU=T TG [caleT
Ti4ui de date ecunoscute ?n Fo;!o
Hn BoxPro sunt recunoscute ur?toarele ti)uri de date:
B tipul caracter ;(< \ ir for?at din - )>n la ,.: caractere A'(## cu exce)ia caracterelor
- 4inar ;0U==<2 (trlJ/ ;cod ,8<L
1 tipul numeric ;0< \ succesiune de cifre /eci?ale2 eventual )recedat de se?nul ] sau i
)ut>nd conine ?arca /eci?al ;caracterul ."<L
1 tipul lotant ;B< \ date nu?erice re)re/entate Cn virgul flotant2 utili/ate )entru calcule
?ate?atice de )reci/ieL
1 tipul data calendaristic ;F< \ date calendaristice re)re/entate Cn ?e?orie ca nu?ere2 iar
for?atul extern i?)licit este llJ//Jaa ;ll\nr.lun2 //\nr./i din lun2 aa\ulti?ele dou cifre ale
anului<L
1 tipul logic ;=< \ date logice re)re/entate )e un octet ce )ot avea una din valorile:
T adevrat ;True< sau N ;Nes< sau t sau *2 B fals ;Balse< sau 0 ;0o< sau f sau nL
1 tipul memo ;&< \ )oate conine un ir de octei de lungi?e ?axi? dou ?iliarde de
caractere. 0u?ai c>?)urile ta4elelor )ot fi de ti) ?e?o ;nu i varia4ilele sau constantele< i astfel
de c>?)uri conin doar adresa )e 1- octei ctre un fiier cu extensia 5pt care conine infor?aia
)ro)riu/is )entru fiecare Cnregistrare din fiierul 5db )e lungi?e varia4il ;)>n la ?ax. dou
?iliarde de caractere<
1 tipul general ;!< \ utili/at )entru susinerea tehnologiei G=1 ;G4Dect =in@ing and
1?)eding< legarea i Cnglo4area o4iectelor ;texte2 desene2 i?agini2 sunete2 foi de calcul ta4elar
etc.<. 'tocarea datelor se face tot Cn fiierul 5pt la fel ca Cn ca/ul c>?)urilor ?e?o. Pentru a )relua
un o4iect G=1 dintr%o a)licaie extern Cn 4a/a de date se folosete o)iunea Cop! din ?eniul *dit
al )rogra?ului &indo$s *7plorer )entru a co)ia o4iectul Cn ?e?oria te?)orar Clipboard2 a)oi cu
o)iunea 'aste sau 'aste )pecial din ?eniul *dit al )rogra?ului BoxPro se inserea/ sau se face
referina la o4iectul din Clipboard Cn c>?)ul 8eneral din 4a/a de date.
::
Ceaea unei ta"ele
Pentru crearea unei ta4ele se va utili/a co?anda (R1AT1 [nu?e ta4elT sau din ?eniul
File se alege o)iunea Ne$ i a)oi Table. Hn a?4ele situaii siste?ul BoxPro va afia un ecran
)entru definirea structurii ta4elei ;fereastra Table Designer )entru definirea ta4elei ca Cn figura :7<
Cn care utili/atorul va introduce )entru fiecare c>?) nu?ele2 ti)ul2 di?ensiunea ;li?ea< eventual
nu?rul de /eci?ale )entru c>?)urile nu?erice. Hn figura :: este redat definirea ta4elei 'roduse.
:.
Fi5ua >=1 Bereastra Table Designer )entru definirea structurii unei ta4ele5
Fi5ua >>1 Fefinirea structurii ta4elei $roduse5
Fu) definirea tuturor c>?)urilor ta4elei se a)as 4utonul O92 iar la ?esaDul Input data
records no$ se va a)sa 4utonul Yes dac se continu cu o)eraia de inserare date Cn ta4el2 sau
4utonol No Cn ca/ contrar. =a a)sarea 4utonului Yes se va afia un for?ular de )reluare date Cn
?od coloan ;C"ange2 figura :..1<2 care )oate fi transfor?at Cn ?od ta4el ;Bro$se2 figura :..,<
select>nd o)iunea Bro$se din ?eniul Bro$se.
!o"lem# 4o4us#
' se cree/e ta4elele 4a/ei de date Burni/ori(lieni i s se )reia date Cn fiecare ta4el
confor? s)ecificaiilor )re/entate Cn lucrrile de la4orator )entru 4a/e de date Access.
Inseae, modi<icae i te5ee date ?ntBo ta"el#
Pentru introducerea datelor Cn ta4el se )oate utili/a una din co?en/ile:APP10F2 1F#T2
3RGA'1.
Biecare Cnregistrare de date din ta4el2 )e l>ng datele )ro)riu%/ise ?ai conine Cnc un octet
nu?it de invalidare logic care )er?ite ?arcarea Cnregistrrilor )entru tergere ;conine valoarea Y
)entru Cnregistrrile ?arcate )entru tergere<. Fe ase?enea fiecare Cnregistrare )ri?ete un nu?r
curent nu?it indicator de Cnregistrare Cnce)>nd de la 1 Cn ordinea introducerii Cnregistrrilor.
Biecare nou Cnregistrare este adugat la sf>ritul fiierului. Grdinea introducerii Cnregistrrilor Cn
ta4el este nu?it ordine natural i este ordinea i?)licit Cn care vor fi )arcurse Cnregistrrile
ta4elei.
Pentru ?odificarea datelor introduse Cn ta4el )ot fi folosite co?en/ile 1F#T2 3RGA'1.
$tergerea de Cnregistrri dintr%o ta4el se reali/ea/ Cn dou eta)e:
B /tergerea logic \ ?arcarea )entru tergere ;co?)letarea octetului de
invalidare logic )entru tergere<
B /tergerea izic \ eli?inarea Cnregistrrii i eli4erarea s)aiului ocu)at.
:8
Fi5ua >>1 Fefinirea structurii ta4elei $roduse5
Fi5ua >)121 Bor?ular de )reluare date Cn ?odul C%ange Cn ta4ela $roduse5
Fi5ua >)1'1 Bor?ular de )reluare date Cn ?odul 4rowse Cn ta4ela $roduse5
$tergerea logic se reali/ea/ cu co?anda F1=1T1. Fac '1T F1=1T1F este G0 atunci
Cnregistrrile ?arcate )entru tergere nu vor fi v/ute de alte co?en/i BoxPro ;1x: =#'T2
F#'P=AN2 3RGA'1 etc.<. Anularea tergerii logice se reali/ea/ cu co?anda R1(A==.
$tergerea fi/ic se reali/ea/ cu co?anda PA(^. $tergerea fi/ic reali/ea/ rescrierea fiierelor
core)un/toare ta4elei ?ai )uin Cnregistrrile ?arcate )entru tergere.
$tergerea fi/ic a tuturor Cnregistrrilor se )oate reali/a fie cu co?anda VAP2 fie cu co?en/ile
F1=1T1 A==2 PA(^.
'tructura unei ta4ele )oate fi ?odificat ;?odificare c>?)uri existente2 adugare de noi
c>?)uri2 tergere c>?)uri existente< utili/>nd co?anda &GF#BN 'TRU(TUR1.
'tructura unei ta4ele )oate fi vi/uali/at utili/>nd co?anda =#'T 'TRU(TUR1 sau
F#'P=AN 'TRU(TUR1.
Afiarea Cnregistrrilor unei ta4ele )oate fi reali/at cu una din co?en/ile =#'T2 F#'P=AN
A==.
Gricare din o)eraiile de ?ai sus asu)ra unei ta4ele )oate fi efectuat nu?ai dac Cn
)reala4il ta4ela res)ectiv a fost deschis.
Feschiderea ;activarea< unei ta4ele se reali/ea/ cu co?anda: U'1 [ nu?e ta4el T
Feschiderea unei ta4ele )resu)une utili/area unei /one de ?e?orie Cn care sunt ?e?orate
infor?aii )rivind ta4ela res)ectiv2 /on nu?it zona de lucru.
BoxPro ,.8 su4 A#0FGA' aloc ,,. astfel de /one de lucru nu?erotate de la 1 la ,,.
ceea ce Cnsea?n c )ot fi deschise la un ?o?ent dat ?axi?u? ,,. ta4ele.
Preci/area /onei de lucru Cn care este deschis o ta4el se )oate face :
% fie cu co?anda U'1 astfel: U'1 [nu?e ta4elT #0 [nr./onT
% fie cu co?anda '1=1(T astfel :
'1=1(T [ne./onT_[aliasT
U'1 [nu?e ta4elT
Vona de lucru i?)licit este /ona 1.
Vona de lucru curent este ulti?a /on selectat cu co?anda '1=1(T sau /ona 1 Cn li)sa
unei co?en/i '1=1(T [nr./onT.
Biecare /on de lucru utili/at )oate )ri?i un alias s)ecificat Cn co?anda U'12 iar Cn li)sa
s)ecificrii2 aliasul /onei este nu?ele ta4elei deschise Cn /ona de lucru res)ectiv.
Astfel se )ot referi c>?)urile unei ta4ele folosind aliasul /onei de lucru Cn care a fost
deschis ta4ela res)ectiv.
1xe?)lu:
?.cod) \ -
'TGR1 'PA(1;,-< TG ?.den)
U'1 Produse #0 7
?.cod) \ Produse.cod)
?.den) \ Produse.den)
Hn secvena de instruciuni de ?ai sus Produse.cod)2 Produse.den) refer c>?)urile cod)2
den) din ta4ela Produse deschis Cn /ona de lucru 7 care nu este /ona de lucru curent.
Fu) ter?inarea lucrului cu 4a/a de date aceasta tre4uie Cnchis utili/>nd una din
co?en/ile U'12 (=G'1.
Utili-ae meniu Iel4
Pentru docu?entare )rivind )rodusul BoxPro se )oate utili/a ?eniul Uel) ca Cn exe?)lul
ilustrat Cn i?aginile de ecran din figura :8 )entru versiunea ,.8 su4 AindoIs.
:6

:9
Fi5ua >C1 Utili/are ?eniu 5elp5
Lucae de la"oato n1 G
Tema3 $a-e de date Fo;!o1 Elementele lim"aAului Fo;!o1
Produsul BoxPro dis)une de un li?4aD de )rogra?are denu?it BoxPro care conine
a)roxi?ativ ,-- co?en/i care )ot fi executate individual din fereastra de co?en/i sau din
)rogra?e2 )entru crearea2 Cntreinerea i interogarea 4a/elor de date.
Elementele lim"aAului 3identificatori2 constante2 varia4ile scalare ;c>?)uri2 varia4ile de ?e?orie<2
?asive2 o)eratori2 funcii2 ex)resii2 instruciuni2 ferestre2 ?eniuri2 )roceduri2 )rogra?e.
Identiicatori % succesiune de caractere ;doar )ri?ele 1- au se?nificaie< alfa4etice2 cifre i liniua
de su4liniere `" 2 care )oate Cnce)e cu o liter sau `". #dentificatorii )ot re)re/enta:
- cuvinte cheie ale li?4aDului ;ex. (R1AT12 BGR2 #B2 etc.<L
- cuvinte definite de utili/ator ;ex. Produse2 (od)2 Fen)2 etc.<.
1ste indicat a se evita utili/area de cuvinte cheie )entru cuvinte definite de utili/ator ;)entru a nu
crea confu/ii i )entru Cnelegerea se?nificaiei cuvintelor utili/ate<.
(uvintele cheie ale li?4aDului )ot fi trunchiate la ?ini? )ri?ele : caractere ca de exe?)lu:
(R1AT12 (R1A2 (R1AT au aceeai se?nificaie. Pot fi utili/ate litere ?aDuscule2 ?inuscule sau
orice co?4inaie de ?aDuscule i ?inuscule.
Constante:
% Constanta caracter succesiune de caractere Cncadrat Cntre a sau sau Q R
1xe?)lu: a=i?4aDul BoxPro" la dis)o/iia dvs.b
;caracterul a s%a utili/at )entru a indica Cnce)utul i sf>ritul constantei iar caracterele fac )arte din
constant<.
B Constante dat calendaristic o dat calendaristic Cncadrat Cntre acolade
1xe?)lu: c-7J-9J-,d
% Constante logice re)re/int valorile logice aadevratb 2 afalsb du) cu? ur?ea/:
.T. sau .t. sau .N. sau .*. )entru aadevratb ;True2 true2 Nes2 *es<
.B. sau .f. sau .0. sau .n. )entru afalsb ;Balse2 false2 0o2 no<
% Constante numerice % succesiuni de cifre /eci?ale )recedate eventual de se?nul ] sau i
)ut>nd conine ?arca /eci?al a.b. ;exe?)le: 1,. 2 %1,..<
Poate fi utili/at i notaia tiinific ;exe?)le: ..9691]1, re)re/int .2969 Cn?ulit cu 1- la
)uterea 1, 2 1.81%1, re)re/int 1.8 Cn?ulit cu 1- la )uterea 1,<.
1 #ariabile % sunt identificatori )entru varia4ile de ?e?orie sau c>?)uri Cntr%o
ta4el .F3B.
Pentru a )reci/a c varia4ila este o varia4il de ?e?orie sau un c>?) Cntr%o
ta4el se )oate folosi o)eratorul . sau %T i aliasul astfel:
&.0u?e sau &%T0u?e s)ecific varia4ila de ?e?orie 0u?e
Persoane.0u?e sau Persoane%T0u?e s)ecific c>?)ul 0u?e din
ta4ela Persoane .
Fac nu se face )reci/area ca ?ai sus i ta4ela Persoane este deschis Cn
/ona de lucru curent atunci 0u?e refer c>?)ul 0u?e i nu varia4ila de ?e?orie 0u?e.
G varia4il de ?e?orie )oate fi creat )rin o)eraia de atri4uire astfel:
?.0u?e \ a#onescub sau folosind co?anda 'TGR1 astfel
'TGR1 a#onescub TG ?.0u?e.
Ti)ul unei varia4ile de ?e?orie este dat de valoarea ?e?orat Cn acea varia4il.
:5
=a ?o?ente diferite de ti?) aceeai varia4il de ?e?orie )oate avea ti)uri diferite
funcie de valoarea ?e?orat Cn varia4il la fiecare ?o?ent.
G clas s)ecial de varia4ile o re)re/int varia4ilele de siste? care sunt utili/ate )entru a
)stra anu?ite infor?aii ca de exe?)lu varia4ila siste? `P(GP#1' )strea/ nu?rul de co)ii
de ti)rit )entru ur?torul ra)ort. #dentificatorii acestor varia4ile Cnce) cu caracterul liniua de
su4liniere a`b.
Masi4e sunt structuri de date care )er?it ?e?orarea ?ai ?ultor valori Cntr%o /on de ?e?orie
creia i se atri4uie un nu?e2 valorile res)ective )ut>nd fi tratate at>t ca un tot c>t i ca ele?ente
distincte. &asivele sunt organi/ate su4 for?a unui ta4lou de valori unidi?ensional sau
4idi?ensional2 deci su4 for? de vectori sau de ?atrice. Feclararea unui ?asiv se reali/ea/ cu
una din co?en/ile F#&10'#G0 sau F1(=AR1 ca Cn exe?)lele de ?ai Dos:
F#&10'#G0 Vec;1-< declar un vector nu?it Vec de 1- ele?ente Vec;1<2Vec;,<2
Z2Vec;1-<.
F#&10'#G0 alfa;,2:< declar ?atricea alfa cu , linii i : coloane av>nd ele?entele alfa;121<
alfa;12,< alfa;127< alfa;12:< alfa;,21< alfa;,2,< alfa;,27< alfa;,2:<.
F1(=AR1 vector;9<2?atrice;:27< declar vectorul vector de 9 ele?ente i ?atricea ?atrice cu :
linii i 7 coloane.
1le?entele unui ?asiv )ot fi de acelai ti) sau de ti)uri diferite. Fu) declararea unui
?asiv toate ele?entele sale vor fi de ti) logic av>nd valoarea .B. Ulterior fiecare ele?ent al
?asivului )oate )ri?i orice valoare )rin instruciunea de atri4uire \2 sau 'TGR1.
Operatori K)reci/ea/ aciunile ce tre4uie efectuate asu)ra datelor ;o)eran/ilor<.
% G)eratori arit?etici:
% ;unar< s)ecific un nu?r negativ
] ;unar< s)ecific un nu?r )o/itiv 2 este i?)licit
] adunare
% scdere
Y Cn?ulire
J C?)rire
YY ridicare la )utere
W ?odulo % restul C?)ririi a dou ex)resii ;ex. :,W1- re/ult ,<
; < gru)are o)eraii
% G)eratori de co?)arare:
\ egal
\\ egalitate exact ;nu?ai )entru ti)ul caracter<
T ?ai ?are
[ ?ai ?ic
T\ ?ai ?are sau egal
[\ ?ai ?ic sau egal
[T diferit
e diferit
O\ diferit
f este cu)rins ;nu?ai )entru ti)urile caracter i ?e?o ;ex. Fac A\b(i?) caracter i
?e?ob atunci co?anda g acaracterb f A d re/ultatul .T. deoarece acaracterb este
coninut Cn A<.
% G)eratori logici:
GR sau
A0F i
.-
0GT negaie
; < gru)are o)eraii )t. schi?4are )rioritate
% G)eratori asu)ra irurilor de caractere:
] concatenare iruri ;ex. aA3(b ] bF1b re/ult aA3(F1b<
% concatenare iruri cu ?utarea s)aiilor li4ere de la sf>ritul )ri?ului
ir la sf>ritul irului re/ultat ;ex. aA3( a % aF1b re/ult aA3(F1 a
Pentru toate ti)urile de o)eratori ordinea de )rioritate ;)recedena< este cea convenional
i )oate fi schi?4at folosind )arante/ele ; <.
Func.ii.
'iste?ul BoxPro dis)une de o ga? variat de funcii ;)este ,--< re)re/ent>nd:
% Buncii ?ate?atice ;'#02 (G'2 TA02 A'#02 A(G'2 ATA02 'ERT2 etc.<
% Buncii de conversie date ;conversia unui ti) de dat Cn alt ti) de dat
;FTG(2 FTG'2 (TGF2 VA=2 'TR2 etc.<
% Buncii )entru irurile de caractere
;=TR#&2 RTR#&2 A==TR#&2 =GAA1R2 UPP1R2 'U3'TR2 etc.<
% Buncii )entru date calendaristice ;(TGF2 FAT12 N1AR2 etc.<
% Buncii )entru fiiere .F3B ;F3B2 F1=1T1F2 1GB2 3GB2 R1((GU0T2 R1(0G2 etc.<
% Buncii )entru c>?)uri ?e?o ;&1&=#01'2 &=#012 etc.<
% Buncii )entru ?eniuri ;PAF2 3AR2 PRG&PT2 etc.<
% Buncii )entru o)eraii de intrareJieire ;=A'T^1N2 (G=2 RGA2 PR#0T'TATU'<
% Buncii de intrareJieire de nivel inferior
;B(R1AT12 BGP102 B(=G'12 BR1AF2 BAR#T12 B!1T'2 BPUT'2 etc.<
% Alte funcii ;B#=12 'N'2 etc.<
*7presii K sunt construcii reali/ate folosind ele?entele li?4aDului ;constante2 identificatori2
o)eratori2 varia4ile2 ?asive2 funcii< i utili/ate Cn cadrul instruciunilor li?4aDului.
G caracteristic i?)ortant a ex)resiilor este ti)ul2 care este dat de ti)ul ele?entelor
utili/ate Cn cadrul ex)resiilor. Astfel ti)ul unei ex)resii )oate fi:
0u?eric [ex)0TL (aracter [ex)(TL =ogic [ex)=TL Fat calendaristic [ex)FT.
Hn cadrul unei ex)resii toate ele?entele tre4uie s fie de acelai ti). Pentru reali/area acestei cerine
se )ot folosi funciile de conversie de ti). Fac Cntr%o ex)resie ti)urile o)eran/ilor nu sunt
co?)ati4ile Cntre ele sau cu o)eratorii utili/ai2 atunci va a)are eroarea:
Fata t*)e ?is?atch"
Instruc.iuni
G instruciune ;co?and< BoxPro este o construcie care Cnce)e cu un ver4 ;cuv>nt cheie
care )reci/ea/ o anu?it aciune< i care ?ai )oate conine o serie de clau/e care s)ecific
condiiile Cn care se va executa co?anda res)ectiv. G instruciune )oate fi scris )e una sau ?ai
?ulte linii2 continuarea instruciunii )e linia ur?toare fiind )reci/at )rin caracterul aLb. Bac
exce)ie instruciunile )entru controlul execuiei )rogra?ului ;instruciunile de )rogra?are
structurat< i anu?e:
#BZ1='1Z10F#B
FG (A'1Z10F(A'1
FG AU#=1Z10FFG
BGRZ10FBGR
care conin c>te un singur cuv>nt cheie )e o linie i nu )ot fi executate din fereastra de co?en/i
BoxPro ci nu?ai din )rogra?e.
Pe aceeai linie nu )oate fi scris dec>t o singur co?and BoxPro.
.1
=iniile care Cnce) cu caracterul aYb sunt considerate linii de co?entarii i deci nu sunt
inter)retate de co?)ilator. G linie instruciune )oate conine Cn continuare un co?entariu )recedat
de caracterele hh.
1xe?)le de instruciuni:
3RGA'1 B#1=F' (od)2Fen)
;Per?ite editarea Cn ?od 3roIse doar a c>?)urilor (od)2Fen) ale ta4elei Produse descrise
anterior.<
F1B#01 A#0FGA f1 BRG& 121 TG 1-2.-L
T#T=1 aBereastra f1bL
(G=GR '(U1&1 7
;Fefinete fereastra f1 din linia 1 coloana 1 )>n Cn linia 1- coloana .-2 av>nd titlul aBereastra f1b
i utili/>nd sche?a de culori 7<
#B sI \ 1
'1=1(T 1
1='1
'1=1(T ,
10F#B
;dac varia4ila de ?e?orie sI are valoarea 1 selectea/ /ona de lucru 12 altfel selectea/ /ona de
lucru ,<
G4servaii:
% orice cuv>nt cheie BoxPro )oate fi trunchiat la ?ini? )ri?ele : caractere ale cuv>ntului.
;1x. F1B#01 este acelai lucru cu F1B#2 F1B#02 F1B#012 A#0FGA este acelai lucru cu
A#0F2 A#0FG2 A#0FGA<L
% orice instruciune BoxPro )oate fi executat fie din fereastra de co?en/i BoxPro2 fie dintr%
un )rogra?2 cu exce)ia instruciunilor de control al execuiei )rogra?elor ;#B2 FG (A'12 FG
AU#=12 BGR< care nu )ot fi executate din fereastra de co?en/i2 ci doar din )rogra?e sau
)roceduri.
!ocedui, 4o5ame ?n Fo;!o
'roceduri
G )rocedur BoxPro este o secven de instruciuni care Cnce)e cu instruciunea
PRG(1FUR1 [nu?e )rocedurT i se ter?in cu instruciunea R1TUR0. Fac instruciunea
R1TUR0 li)sete atunci ur?torul cuv>nt PRG(1FUR1 deter?in sf>ritul )rocedurii anterioare.
G )rocedur este lansat Cn execuie cu co?anda FG [nu?e )rocedurT. G )rocedur )oate face
)arte din fiierul .PR! din care este a)elat2 )oate fi ea Cnsi un fiier .PR! distinct2 sau )oate face
)arte dintr%o 4i4liotec de )roceduri ;un fiier .PR! care conine una sau ?ai ?ulte )roceduri< ca/
Cn care Cnainte de a)elarea )rocedurii2 4i4lioteca care o conine tre4uie deschis cu co?anda '1T
PRG(1FUR1 TG [nu?e 4i4liotecT 2 unde [nu?e 4i4liotecT este nu?ele fiierului .PR! ce
re)re/int 4i4lioteca de )roceduri.
Pot fi utili/ate i )roceduri cu )ara?etri2 ca/ Cn care )ri?a instruciune a )rocedurii este
instruciunea PARA&1T1R' [lista )ara?etri for?aliT 2 iar a)elarea )rocedurii se reali/ea/ cu
co?anda FG [nu?e )rocedurT A#TU [lista )ara?etri actualiT.
'rograme
U0 )rogra? BoxPro este o secven de instruciuni coninut Cntr%un acelai fiier cu
extensia .PR!. Pentru editarea unui )rogra? se )oate folosi fie un editor extern ;care tre4uie
.,
s)ecificat Cn fiierul (G0B#!.BPA<2 fie editorul )rodusului BoxPro care se lansea/ cu co?anda
&GF#BN (G&&A0F [nu?e )rogra?T.
Un )rogra? BoxPro )oate fi construit ca o ierarhie de )roceduri astfel:
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ.
Progra?ul BoxPro cores)un/tor va fi de for?a:
PRG(1FUR1 [ ?ainT hh;o)ional<
. . .
FG P1
. . .
FG P,
. . .
FG Pn
. . .
R1TUR0
PRG(1FUR1 P1
. . .
R1TUR0
PRG(1FUR1 P,
. . .
FG P,1
. . .
FG P,,
. . .
FG P,@
. . .
R1TUR0
. . .
PRG(1FUR1 Pn
. . .
R1TUR0
PRG(1FUR1 P,1
.7
?ain
P1 P,
Z
Pn
P,1 P,,
Z
P,@
P,@1 P,@,
Z
P,@r
. . .
R1TUR0
PRG(1FUR1 P,,
. . .
R1TUR0
. . .
PRG(1FUR1 P,@
. . .
FG P,@1
. . .
FG P,@,
. . .
FG P,@r
. . .
R1TUR0
PRG(1FUR1 P,@1
. . .
R1TUR0
PRG(1FUR1 P,@,
. . .
R1TUR0
. . .
PRG(1FUR1 P,@r
. . .
R1TUR0
. . . . . . . . . . . . . . . . .
Pentru a )utea fi executat2 un )rogra? BoxPro va tre4ui ?ai Cnt>i co?)ilat re/ult>nd astfel
un fiier cu extensia .BXP. =ansarea Cn execuie a unui )rogra? se reali/ea/ cu co?anda
FG [nu?e )rogra?T
=a lansarea Cn execuie2 dac Cn )rogra?ul surs au fost efectuate ?odificri cu editorul &GF#BN
(G&&A0F sau cu un editor s)ecificat Cn fiierul (G0B#!.BPA2 o4inerea fiierului o4iect .BXP
se reali/ea/ auto?at i a)oi se execut )rogra?ul.
Feeste i meniui utili-ato
Ferestre
Produsul BoxPro )er?ite lucrul cu ferestre definite de utili/ator.
G fereastr este o /on dre)tunghiular de ecran definit fie )rin dou )uncte ;colul din
st>nga sus i colul din drea)ta Dos<2 fie )rintr%un )unct ;colul din st>nga sus< i Cnli?ea ;nr. de
r>nduri< i li?ea ferestrei ;nr. de coloane< . Un )unct este definit de coordonatele sale
re)re/ent>nd nu?rul de r>nd i nu?rul de coloan. Pentru a )utea fi folosit2 o fereastr utili/ator
tre4uie ?ai Cnt>i definit2 o)eraie care se reali/ea/ cu co?anda F1B#01 A#0FGA. G fereastr
utili/ator )oate fi definit Cn interiorul unei ferestre )rinte2 care )oate fi: fie fereastra )rinci)al
BoxPro 2 fie o alt fereastr utili/ator. (oordonatele )unctelor ce definesc fereastra Cn ca/ul definirii
)rin dou )uncte ;colul din st>nga sus i colul din drea)ta Dos< sunt funcie de di?ensiunea
fontului ferestrei )rinte. 'e )ot defini ferestre utili/ator care sunt ?ai ?ari dec>t ecranul.
1xe?)le.
F1B#01 A#0FGA f1 BRG& :2: TG 1.2:.
.:
F1B#01 A#0FGA f1 AT :2: '#V1 1-2:-
(ele dou instruciuni sunt echivalente i definesc fereastra f1 Cnce)>nd din colul din st>nga sus
)reci/at de )unctul dat de r>ndul : coloana : i av>nd 1- r>nduri i :- coloane.
Fac )resu)une? c fontul ferestrei )rinci)ale BoxPro nu este stilul aRo?an" de ,: )uncte atunci
co?en/ile de ?ai Dos definesc ferestre de di?ensiuni diferite:
F1B#01 A#0FGA f1 BRG& :2: TG 1.2:. BG0T Ro?an"2,:
F1B#01 A#0FGA f1 AT :2: '#V1 1-2:- BG0T Ro?an"2,:
Pentru )ri?a co?and coordonatele )unctelor ce definesc fereastra se 4a/ea/ )e fontul ferestrei
)rinci)ale BoxPro2 iar Cn a doua co?and2 di?ensiunile ferestrei se 4a/ea/ )e fontul )reci/at Cn
co?and ;aRo?an" de ,: de )uncte<.
Pentru ferestrele definite )ot fi reali/ate ur?toarele o)eraii:
- Activare ferestre cu co?anda A(T#VAT1 A#0FGA
;du) activarea unei ferestre2 aceasta r?>ne )e ecran )>n la de/activarea ei i toate infor?aiile
de ieire )e ecran vor fi diriDate ctre aceast fereastr<.
- Fe/activare ferestre cu co?anda F1A(T#VAT1 A#0FGA
;o fereastr de/activat este tears de )e ecran2 Cns r?>ne Cn continuare Cn ?e?orie<.
- Ascunde ferestre cu co?anda U#F1 A#0FGA
;o fereastr ascuns este tears de )e ecran2 r?>n>nd >n continuare Cn ?e?orie2 Cns infor?aiile
tri?ise s)re ecran sunt afiate Cn continuare Cn acea fereastr<.
- Afiare ferestre cu co?anda 'UGA A#0FGA
;fereastra ascuns cu co?anda U#F1 va fi afiat )e ecran<.
- $tergere ferestre cu co?anda R1=1A'1 A#0FGA sau (=1AR A#0FGA
;de/activea/ ferestrele )reci/ate i le eli?in din ?e?orie<.
- 'alvare ferestre cu co?anda 'AV1 A#0FGA
;salvea/ ferestrele s)ecificate Cntr%un fiier )e disc sau Cntr%un c>?) ?e?o<
- Recu)erare ferestre cu co?anda R1'TGR1 A#0FGA
;ferestrele ?enionate sunt aduse Cn ?e?orie de )e disc sau din c>?)ul ?e?o<.
Meniuri
&eniurile sunt o categorie i?)ortant de o4iecte )entru reali/area interfeei utili/ator Cn
cadrul a)licaiilor BoxPro. Produsul BoxPro2 alturi de ?eniurile siste?2 ofer )osi4ilitatea definirii
i folosirii ?eniurilor utili/ator i anu?e: ?eniuri ori/ontale i ?eniuri verticale.
Meniuri orizontale ;4ara de ?eniuri< K conine un nu?r de o)iuni nu?ite )ad%uri ae/ate
de regul )e acelai r>nd.
(rearea i utili/area unui ?eniu )resu)une )arcurgerea ur?toarelor o)eraii:
% definire ?eniu cu co?anda F1B#01 &10U [nu?e ?eniuTL
% definire o)iuni cu co?anda F1B#01 PAFL
% )reci/are aciune de executat la selecia unei o)iuni cu una din co?en/ile:
G0 '1=1(T#G0 PAF [)adT GB [nu?e ?eniuT FG [nu?e )rocedurTL
G0 PAF [)adT GB [nu?e ?eniuT A(T#VAT1 PGPUP [)T_&10U[?TL
% activare ?eniu cu co?anda A(T#VAT1 &10UL
% ascundere ?eniu cu co?anda U#F1 &10UL
% afiare ?eniu cu co?anda 'UGA &10UL
% de/activare ?eniu cu co?anda F1A(T#VAT1 &10U.
=a de/activarea unui ?eniu2 controlul )rogra?ului este dat instruciunii care ur?ea/ celeia
care a activat ?eniul res)ectiv.
..
1xe?)lu.
' se defineasc i s se utili/e/e un ?eniu ori/ontal )entru efectuarea o)eraiilor de
adugare2 tergere2 editare ;actuali/are< date Cn ta4ela Produse astfel:
(=1AR
(=G'1 A==
F1B#01 &10U &o1
F1B#01 PAF P1 GB &o1 PRG&PT ai[Adaugareb
F1B#01 PAF P, GB &o1 PRG&PT ai['tergereb
F1B#01 PAF P7 GB &o1 PRG&PT aActualii[Vareb
F1B#01 PAF P: GB &o1 PRG&PT a'i[Birsitb
G0 '1=1(T#G0 PAF P1 GB &o1 FG PA
G0 '1=1(T#G0 PAF P, GB &o1 FG P'
G0 '1=1(T#G0 PAF P7 GB &o1 FG PV
G0 '1=1(T#G0 PAF P: GB &o1 FG PB
U'1 Produse
A(T#VAT1 &10U &o1
PRG(1FUR1 PA
APP10F
R1TUR0
PRG(1FUR1 P'
F1=1T1 A== BGR [conditieT
R1TUR0
PRG(1FUR1 PV
3RGA'1 0GAPP10F 0GF1=1T1
R1TUR0
PRG(1FUR1 PB
PA(^
U'1
F1A(T#VAT1 &10U
R1TUR0
Meniuri 4erticale ;o4iecte )o)u)<
Un ?eniu vertical sau )o)u) este o caset dre)tunghiular care conine un nu?r de o)iuni
;4are de selecie< care )ot fi definite fiecare se)arat2 sau )ot re)re/enta fiiere din directorul curent2
sau valorile unei ex)resii definite folosind c>?)uri ale unei ta4ele2 sau denu?irile c>?)urilor unei
ta4ele.
(rearea i utili/area unui ?eniu )o)u) necesit )arcurgerea ur?toarelor o)eraii:
% definire ?eniu cu co?anda F1B#01 PGPUPL
% definire o)iuni cu co?anda F1B#01 3AR Cn ca/ul Cn care o)iunile sunt definite fiecare
se)arateL
% )reci/are aciune de executat la selecia unei o)iuni cu una din co?en/ile:
G0 '1=1(T#G0 PGPUP [nu?e )o)u)T FG [nu?e )rocedurTL
.8
Adaugare 'tergere Actuali/are 'firsit
G0 '1=1(T#G0 3AR GB [nu?e )o)u)T FG [nu?e )rocedurTL
G0 3AR [ex)0T GB [nu?e )o)u)T A(T#VAT1 &10U [?T_PGPUP [PTL
% activare ?eniu cu co?anda A(T#VAT1 PGPUP [nu?e )o)u)TL
% ascundere ?eniu cu co?anda U#F1 PGPUPL
% afiare ?eniu cu co?anda 'UGA PGPUPL
% de/activare ?eniu cu co?anda F1A(T#VAT1 PGPUP.
=a de/activarea unui ?eniu2 controlul )rogra?ului este dat instruciunii care ur?ea/ celeia
care a activat ?eniul res)ectiv.
1xe?)lul 1
'e definete i utili/ea/ un ?eniu vertical )entru adugare2 tergere2 actuali/are2 Cnregistrri Cn
ta4ela Produse cu o)iunile: Adaugare2 'tergere2 Actuali/are2 'firsit:
(=1AR
(=G'1 A==
U'1 Produse
F1B#01 PGPUP &v1 BRG& .27 T#T=1 aTa4ela Produseb
F1B#01 3AR 1 GB &v1 PRG&PT ai[Adaugare inregistrarib
F1B#01 3AR , GB &v1 PRG&PT ai['tergere inregistrarib
F1B#01 3AR 7 GB &v1 PRG&PT aActualii[Vare inregistrarib
F1B#01 3AR : GB &v1 PRG&PT a'i[Birsit )rogra?b
G0 '1=1(T#G0 PGPUP &v1 FG P)
A(T#VAT1 PGPUP &v1
PRG(1FUR1 P)
FG (A'1
(A'1 3AR;< \ 1
FG PA
(A'1 3AR;< \ ,
FG P'
(A'1 3AR;< \ 7
FG PV
(A'1 3AR;< \ :
FG PB
10F(A'1
PRG(1FUR1 PA
APP10F
R1TUR0
PRG(1FUR1 P'
F1=1T1 A== BGR [conditieT
R1TUR0
PRG(1FUR1 PV
3RGA'1 0GAPP10F 0GF1=1T1
R1TUR0
PRG(1FUR1 PB
PA(^
U'1
F1A(T#VAT1 PGPUP
R1TUR0
.6
1xe?)lul ,
'e definete i utili/ea/ un ?eniu vertical Cn care o)iunile sunt valorile c>?)urilor (od)2
Fen) din ta4ela Produse2 iar la selecia unei o)iuni se afiea/ Cnregistrrile cores)un/toare din
ta4ela 'tocuri. Fe/activarea ?eniului se va reali/a la a)sarea tastei 1sca)e.
(=1AR
(=G'1 A==
F1B#01 PGPUP &v, BRG& .21- PRG&PT B#1=F (od) ] a a ] Fen)L
T#T=1 a=ista inregistrarilor din ta4ela Produseb (G=GR '(U1&1 .
G0 '1=1(T#G0 PGPUP &v, FG afis`stoc
U'1 Produse #n 7
Use 'tocuri #0 :
'1=1(T 7
A(T#VAT1 PGPUP &v,
(=G'1 A==
PRG(1FUR1 afis`stoc
'1=1(T :
3RGA'1 BGR Produse.(od) \ 'tocuri.(od)
'1=1(T 7
R1TUR0
1xe?)lul 7
'e definete i utili/ea/ un ?eniu vertical Cn care o)iunile sunt toate fiierele .d4f din directorul
curent. =a selecia unei o)iuni se afiea/ toate Cnregistrrile din ta4ela res)ectiv.
(=1AR
(=G'1 A==
F1B#01 PGPUP &v, BRG& .21- PRG&PT B#=1' =#^1 Y.d4fL
T#T=1 a=ista Ta4eleb (G=GR r4]J4g2!R]Jr2gr]Jg2A]Jn
G0 selection PGPUP &v, FG afis`date
A(T#VAT1 PGPUP &v,
U'1
PRG(1FUR1 afis`date
?.fis\b a
?.fis\)ro?)t;<
U'1 ;?.fis<
=#'T
Aait aA)asati o tastab
(=1AR
F1A(T#VAT1 PGPUP
R1TUR0
!o"lem# 4o4us#
1x)ortai ta4elele 4a/ei de date Burni/ori(lieni din Access Cn BoxPro.
Testai )rogra?ele )re/entate Cn cadrul lucrrii de la4orator.
'i?ilar exe?)lelor de )rogra?e )re/entate )entru ta4elele Produse2 'tocuri2 scriei i testai
)rogra?ele )entru ta4elele Burni/or2 Gferte i (lieni2 Van/ari.
.9
Lucae de la"oato n1 2(
Tema3 $a-e de date Fo;!o1 Clase de instuciuni ale lim"aAului Fo;!o1
Instuciuni de 4o5amae stuctuat#
Pentru re/olvarea unor )ro4le?e de co?)lexitate ?are sunt necesare instruciuni care s
schi?4e ordinea de execuie secvenial a co?en/ilor Cn cadrul unui )rogra?.
=i?4aDul BoxPro dis)une de instruciuni )entru reali/area de ra?ificaii ;execuia
condiionat a unor secvene de instruciuni< i 4ucle ;iteraii2 cicluri execuia re)etat a unei
secvene de instruciuni< care )er?it reali/area de )rogra?e structurate2 fiind din acest ?otiv
nu?ite i instruciuni de )rogra?are structurat.
Ramiica.iile sunt reali/ate cu aDutorul instruciunilor #BZ1='1Z10F#B i
FG (A'1Z10F(A'1.
#nstruciunea #B reali/ea/ selecia execuiei unui gru) de instruciuni din dou )osi4ile
astfel:
#B [condiieT
[instruciuni 1T
1='1
[instruciuni ,T
10F#B
1xecuia acestei instruciuni se reali/ea/ astfel:
'e evaluea/ ex)resia logic [condiie T.
Fac valoarea re/ultat Cn ur?a evalurii este .T. ;adevrat<2 atunci se execut secvena de
instruciuni [instruciuni 1T2 altfel se execut secvena de instruciuni [instruciuni ,T i Cn a?4ele
ca/uri )rogra?ul continu cu execuia instruciunii care ur?ea/ du) clau/a 10F#B.
Poate fi utili/at i for?a si?)lificat a instruciunii Cn care li)sete clau/a 1='1 :
#B [condiieT
[instruciuniT
10F#B
'ecvenele [instruciuni 1T2 [instruciuni ,T )ot conine la r>ndul lor instruciuni #B2
o4in>ndu%se astfel i?4ricarea instruciunilor #B )e un nu?r oarecare de nivele.
1xe?)lu
#B B#=1;aProduse.d4fb<
U'1 Produse
=#'T
1='1
g aBisier Produse.d4f li)sa in a2s*s;,--7<
10F#B
;dac fiierul Produse.d4f exist Cn directorul curent2 deschide fiierul i afiea/ Cnregistrrile sale2
altfel afiea/ ?esaDul aBisier Produse.d4f li)sa in [caleTb<.
#nstruciunea FG (A'1 reali/ea/ execuia unui gru) de instruciuni din ?ai ?ulte
gru)uri )osi4ile astfel:
FG (A'1
(A'1 [condiie 1T
[instruciuni 1T
(A'1 [condiie ,T
[instruciuni ,T
.5
Z
(A'1 [condiie nT
[instruciuni nT
QGTU1RA#'1
[instruciuniTR
10F(A'1
'e execut )ri?ul gru) de instruciuni [instruciuni @T )entru care re/ultatul evalurii
ex)resiei logice [condiie @T este .T. ;adevrat< i )rogra?ul continu cu instruciunea care
ur?ea/ du) clau/a 10F(A'1.
Fac nici una din ex)resiile logice [condiie @T nu are valoarea .T. ;adevrat< i dac
clau/a GTU1RA#'1 este )re/ent2 atunci se execut gru)ul de instruciuni [instruciuniT )reci/at
Cn clau/a GTU1RA#'1 i a)oi )rogra?ul continu cu instruciunea care ur?ea/ du) clau/a
10F(A'1.
Buclele +itera.iile2 ciclurile, sunt reali/ate cu aDutorul instruciunilor
FG AU#=1 Z 10FFG2 BGR Z 10FBGR2 '(A0 Z 10F'(A0.
#nstruciunea FG AU#=1 Z 10FFG reali/ea/ execuia re)etat a unui gru) de
instruciuni at>ta ti?) c>t o condiie este adevrat astfel:
FG AU#=1 [condiieT
[instruciuni 1T
Q=GGP
[instruciuni ,TR
Q1X#T
Q[instruciuni 7TRR
10FFG
'e execut re)etat gru)ul de instruciuni [instruciuni 1T at>ta ti?) c>t re/ultatul evalurii
ex)resiei logice [condiieT este .T. ;adevrat< i a)oi )rogra?ul continu cu instruciunea care
ur?ea/ du) clau/a 10FFG.
Fac clau/a =GGP este )re/ent2 atunci se reia ciclul cu gru)ul de instruciuni [instruciuni
1T fr a se executa gru)ul de instruciuni [instruciuni ,T.
Fac clau/a 1X#T este )re/ent2 atunci se )rsete forat 4ucla fr a se ?ai executa
gru)ul de instruciuni [instruciuni 7T i )rogra?ul continu cu instruciunea care ur?ea/ du)
clau/a 10FFG.
!ru)urile de instruciuni [instruciuni 1T2[instruciuni ,T2[instruciuni 7T )ot conine ele
Cnsele instruciuni FG AU#=1 Z 10FFG2 o4in>ndu%se astfel instruciuni FG AU#=1 i?4ricate
)e un nu?r oarecare de nivele.
1xe?)lu (alculul su?ei )ri?elor n nu?ere naturale
?.'\-
?.i\1
#0PUT a#ntroduceti nu?arul [nT:b TG ?.n
FG AU#=1 ?.i [\ ?.n
?.' \ ?.' ] ?.i
&.i \ ?.i ] 1
10FFG
g a'u?a )ri?elor a2?.n2 a nu?ere naturale este ' \ a2?.'
#nstruciunea BGR Z 10FBGR reali/ea/ execuia re)etat a unui gru) de instruciuni
)lec>nd de la o valoare iniial a unei varia4ile2 )>n la o valoare final a varia4ilei2 cu un anu?it
)as astfel:
8-
BGR [varia4ilaT \ [val.iniialT TG [val.finalT Q'T1P [)asTR
[instruciuni 1T
Q=GGP
[instruciuni ,TR
Q1X#T
Q[instruciuni 7TRR
10FBGR
'e execut gru)ul de instruciuni [instruciuni 1T de un nu?r de ori deter?inat )lec>nd de
la valoarea iniial a varia4ilei [varia4ilaT )>n la valoarea sa final cu )asul [)asT ;[val.iniialT2
[val.finalT2 [)asT sunt ex)resii nu?erice Cntregi<2 du) care )rogra?ul continu cu instruciunea
care ur?ea/ du) clau/a 10FBGR.
!ru)urile de instruciuni [instruciuni 1T2[instruciuni ,T2[instruciuni 7T )ot conine ele
Cnsele instruciuni BGR Z 10FBGR2 o4in>ndu%se astfel instruciuni BGR i?4ricate )e un nu?r
oarecare de nivele.
(lau/ele =GGP2 1X#T au acelai efect ca Cn ca/ul instruciunii FG AU#=1.
1xe?)lu (alculul su?ei )ri?elor n nu?ere naturale
?.'\-
#0PUT a#ntroduceti nu?arul [nT:b TG ?.n
BGR i \ 1 TG ?.n 'T1P 1
?.' \ ?.' ] i
10FBGR
g a'u?a )ri?elor a2?.n2 a nu?ere naturale este ' \ a2?.'
#nstruciunea '(A0 Z 10F'(A0 reali/ea/ )arcurgerea secvenial ;i eventual
selectiv )reci/at )rintr%o condiie< a Cnregistrrilor ta4elei deschise Cn /ona de lucru curent i
execuia unui gru) de instruciuni )entru fiecare Cnregistrare )arcurs2 Cnce)>nd cu Cnregistrarea
curent )>n la sf>ritul fiierului .F3B2 sau )>n c>nd 4ucla este Cntreru)t )rin clau/a 1X#T.
'intaxa instruciunii este:
'(A0 Q[do?eniuTRQBGR [condiie 1TRQAU#=1 [condiie ,TR
[instruciuni 1T
Q=GGP
[instruciuni ,TR
Q1X#T
Q[instruciuni 7TRR
10F'(A0
Prin [do?eniuT )oate fi )reci/at nu?rul de Cnregistrri de )arcurs cu aDutorul clau/elor
A== sau 01XT [nr.CnregistrriT.
(lau/ele BGR i AU#=1 )reci/ea/ condiia )e care tre4uie s o Cnde)lineasc
Cnregistrrile ce vor fi luate Cn considerare res)ectiv condiia ce )reci/ea/ )>n c>nd va fi )arcurs
ta4ela.
!ru)urile de instruciuni [instruciuni 1T2[instruciuni ,T2[instruciuni 7T )ot conine ele
Cnsele instruciuni '(A0 Z 10F'(A02 o4in>ndu%se astfel instruciuni '(A0 i?4ricate )e un
nu?r oarecare de nivele.
(lau/ele =GGP2 1X#T au acelai efect ca Cn ca/ul instruciunii FG AU#=1.
1xe?)lu Afisarea c>?)urilor (od)2 Fen) se)arate )rintr%un s)aiu )entru toate Cnregistrrile
ta4elei Produse
U'1 Produse
'(A0
81
g (od)2b a2Fen)
10F'(A0
U'1
Instuciuni de intae0ieie
Fin aceast categorie fac )arte instruciunile utili/ate )entru introducerea datelor de la
tastatur i afiarea re/ultatelor )e ecran sau listarea la i?)ri?ant.
#nstruciunile de intrareJieire se C?)art Cn dou gru)e i anu?e :
- #nstruciuni )entru reali/area o)eraiilor de intrareJieire Cn ?od linie
- #nstruciuni )entru reali/area o)eraiilor de intrareJieire Cn ?od ecran
#nstruciuni )entru reali/area o)eraiilor de intrareJieire Cn ?od linie.
Fin aceast gru) fac )arte instruciunile:
g [lista ex)resiiT % reali/ea/ afiarea sau listarea re/ultatelor evalurii ex)resiilor din [lista
ex)resiiT Cnce)>nd din )ri?a coloan a liniei ur?toare liniei curente ;deci Cnainte de afiare se
generea/ codurile [(RT2 [=BT<.
gg [lista ex)resiiT % reali/ea/ afiarea sau listarea Cnce)>nd din coloana curent a ecranului sau
i?)ri?antei.
A((1PT [ex)(T TG [varia4ila de ?e?orieT % afiea/ ?esaDul [ex)(T i atea)t introducerea
de la tastatur a unui ir de caractere care va fi ?e?orat Cn varia4ila de ?e?orie s)ecificat.
#0PUT [ex)(T TG [varia4ila de ?e?orieT % afiea/ ?esaDul [ex)(T i atea)t introducerea de
la tastatur a unei date de ti) ir2 sau nu?r2 sau dat calendaristic2 sau dat de ti) logic care va fi
?e?orat Cn varia4ila de ?e?orie s)ecificat.
')re deose4ire de instruciunea A((1PT data de ti) ir de caractere va tre4ui Cncadrat
Cntre sau a sau QR.
AA#T [ex)(T % afiea/ ?esaDul [ex)(T i atea)t a)sarea unei taste.
Fac [ex)(T este o?is se va afia ?esaDul aPress an* @e* to continueZb.
=#'T reali/ea/ afiarea sau listarea la i?)ri?ant a Cnregistrrilor din ta4ela deschis Cn /ona de
lucru curent.
F#'P=AN A== este si?ilar co?en/ii =#'T cu deose4irea c du) fiecare ecran )lin se afiea/
?esaDul aPress an* @e* to continueZb i se atea)t a)sarea unei taste. Fac clau/a A== este
o?is 2 se va afia doar Cnregistrarea curent.
#nstruciuni )entru reali/area o)eraiilor de intrareJiesire Cn ?od ecran .
#nstruciunile jsa*Zget2 read.
Pentru crearea unui for?ular ;?achete< de )reluare date Cn ?od ecran )ot fi folosite
instruciunile j sa*Zget2 read Cn ur?toarea sintax si?)lificat:
j [linT2[colT 'AN [ex)(T !1T [varia4ilT P#(TUR1 [a4lonT (G=GR[culoriT
R1AF
Unde:
[linT \ linia din care Cnce)e afiarea
[colT \ coloana din care Cnce)e afiarea
[ex)(T \ un ir de caractere Cncadrat Cntre a2"2QR sau ex)resie de ti) ir ce va fi afiat
[varia4ilT \ varia4il de ?e?orie2 nu?e c>?)2 ele?ent de ?asiv2 Cn care vor fi )reluate datele
introduse de la tastatur
[a4lonT \ for?atul de afiare a datelor )reluate2 succesiune de caractere X )t.iruri de caractere2
sau succesiune de caractere 5 )entru datele nu?erice2 sau succesiune de caractere A )entru iruri
care conin doar litere2 etc. Cncadrate Cntre a)ostroafe2 sau ghili?ele. Fe ase?enea Cn cadrul
8,
for?atului de afiare ?ai )ot fi folosite o serie de funcii ca de exe?)lu: O )t.conversie litere ?ici
Cn litere ?ari2 jV )t.su)ri?are /erouri nese?nificative etc.
[culoriT \ o list de doua )erechi de culori2 )ri?a )ereche )entru 'AN i a doua )ereche )entru
!1T2 re)re/ent>nd culoare scris i culoare fond.
Hn cadrul instruciunii )ot fi utili/ate i alte clau/e ca de exe?)lu: '#V12 BG0T2 'TN=12
VA=#F2 1RRGR2 V1R32 3#T&AP etc.
#nstruciunea j sa*Zget )oate fi utili/at i ca dou instruciuni distincte
j [linT2[colT 'AN [ex)(T P#(TUR1 [a4lonT (G=GR [csTJ[cfT
j [linT2[colT !1T [varia4ilT P#(TUR1 [a4lonT (G=GR 2[csTJ[cfT
#nstruciunea R1AF clasic citete un set de co?en/i j!1T Cnce)>nd cu )ri?ul !1T din
list i continu>nd )>n la de)lasarea dincolo de ulti?ul c>?) sau Cnaintea )ri?ului c>?) du)
care se iese din instruciunea R1AF.
H?4untirile aduse for?ei clasice a instruciunii )er?it reali/area de interfee ?ai
)uternice i ?ai flexi4ile utili/>nd un nu?r redus de instruciuni BoxPro.
Hn cele ce ur?ea/ vo? da un exe?)lu de utili/are a instruciunilor jsa*Zget2 read
)entru crearea unui ecran de )reluare date Cn ta4ela Persoane:
?.nrcrt\-
'TGR1 'PA(1;1.< TG ?.nu?e2?.)renu?e
?.datan\c J J d
j72. 'AN a0r.crt.:b
j.2. 'AN a0u?e:b
j62. 'AN aPrenu?e:b
j52. 'AN aFata nasterii:b
j72,. !1T ?.nrcrt P#(T a55b (G=GR 2!R]J3
j.2,. !1T ?.nu?e P#(T aXXXXXXXXXXXXXXXb (G=GR 2!R]J3
j62,. !1T ?.)renu?e P#(T aXXXXXXXXXXXXXXXb (G=GR 2!R]J3
j52,. !1T ?.datan P#(T aXXJXXJXXb (G=GR 2!R]J3
R1AF
+donaea ?ne5ist#ilo unei ta"ele
Grdinea i?)licit de )arcurgere a Cnregistrrilor Cntr%o ta4el este ordinea Cn care au fost
introduse2 aceasta fiind nu?it ordine natural. Pentru a )utea )arcurge Cnregistrrile ta4elei i Cn
alt ordine se )ot utili/a dou ?etode i anu?e :
1 % Grdonarea Cnregistrrilor )rin o)eraia de sortare a ta4eleiL
, % Grdonarea Cnregistrrilor )rin o)eraia de indexare a ta4elei.
Grdonarea )rin sortare se reali/ea/ cu co?anda
'GRT TG [nu?e fiierT G0 [c>?)1T QJA_JF_J(R Z
care are dre)t re/ultat crearea unei noi ta4ele Cn care Cnregistrrile sunt scrise Cn ordinea )reci/at
;ordonate du) unul sau ?ai ?ulte c>?)uri JA%ascendent ;i?)licit<2 JF descendent2 J( fr a lua
Cn considerare deose4irea dintre litere ?ici sau ?ari ;J( )oate fi co?4inat cu JA sau JF astfel: JA(
sau JF(<.
Grdonarea )rin indexare se reali/ea/ cu co?anda #0F1X care Cntr%o for? si?)lificat
are sintaxa:
#0F1X G0 [ex)resie indexTTA! [nu?e crit.ord.TQA'(10F#0!_F1'(10F#0!R
;care are dre)t re/ultat crearea unui criteriu de ordonare a Cnregistrrilor Cntr%un fiier av>nd acelai
nu?e cu nu?ele ta4elei i extensia .(FX<.
87
Preci/area ordinii Cn care se vor )arcurge Cnregistrrile Cntr%o ta4el se face cu co?anda
'1T GRF1R TG [nu?e criteriu de ordonareT.
Revenirea la ordinea natural ;ordinea Cn care au fost Cncrcate Cnregistrrile Cn ta4el< se
face cu co?anda '1T GRF1R TG.
1xe?)lu (rearea unui criteriu de ordonare Cn ta4ela Produse2 alfa4etic du) )ri?ele 7 litere din
c>?)ul Fen):
#0F1X G0 =1BT;Fen)27< TA! nu?e7
(o?en/ile:
U'1 Produse
'1T GRF1R TG TA! nu?e7
=#'T
'1T GRF1R TG
reali/ea/: deschide ta4ela Produse2 )reci/ea/ ordinea de )arcurgere nu?e7 ;alfa4etic du)
)ri?ele 7 litere din denu?irea )rodusului<2 afiea/ Cnregistrrile ta4elei Cn aceast ordine i
)reci/ea/ c Cn continuare Cnregistrrile ta4elei vor fi v/ute Cn ordinea natural ;ordinea Cn care au
fost Cncrcate<.
Buncia TA!;[nr criteriuT<`returnea/ nu?ele criteriului de ordonare [nr criteriuT
Buncia ^1N;[nr criteriuT< returnea/ ex)resia index )entru criteriul de ordonare
[nr`criteriuT.
Instuciuni de 4o-iionae 4e ?ne5ist#i ?ntBo ta"el#
Biecrei ta4ele deschise Cntr%o /on de lucru Ci este asociat un indicator de Cnregistrri care
conine nu?rul Cnregistrrii curente. Aflarea Cnregistrrii curente ;coninutului indicatorului de
Cnregistrri< Cntr%o ta4el se reali/ea/ cu funcia R1(0G;<.
=a deschiderea unei ta4ele cu co?anda U'1 indicatorul de Cnregistrri este )o/iionat )e
)ri?a Cnregistrare ;conine valoarea 1<. Pentru schi?4area indicatorului de Cnregistrri
;)o/iionarea )e o alt Cnregistrare< se )ot folosi instruciunile:
!G [ex)0T % reali/ea/ )o/iionarea )e Cnregistrarea av>nd indicatorul de Cnregistrri
re/ultatul evalurii ex)resiei [ex)0T
!G TGP reali/ea/ )o/iionarea )e )ri?a Cnregistrare a ta4elei
!G 3GTTG& reali/ea/ )o/iionarea )e ulti?a Cnregistrare a ta4elei
'^#P [ex)0T % reali/ea/ ?utarea indicatorului de Cnregistrri )este un nu?r de
Cnregistrri dat de re/ultatul evalurii ex)resiei [ex)0T2 Cnainte sau Cna)oi fa de Cnregistrarea
curent2 du) cu? re/ultatul evalurii ex)resiei [ex)0T este un nu?r )o/itiv sau negativ.
Bunciile 3GB;<2 1GB;< testea/ dac indicatorul de Cnregistrri este )o/iionat )e Cnce)utul
ta4elei2 res)ectiv )e sf>ritul ta4elei.
0u?rul de Cnregistrri dintr%o ta4el este returnat de funcia R1((GU0T;<.
Fi?ensiunea unei Cnregistrri ;Cn nr. octei< este returnat de funcia R1('#V1;<.
Pentru s)ecificarea do?eniului Cnregistrrilor Cn anu?ite instruciuni se )ot utili/a
ur?toarele clau/e :
A== s)ecific toate Cnregistrrile
R1(GRF [nrT % s)ecific Cnregistrarea [nrT
01XT [nrT % s)ecific ur?toarele [nrT Cnregistrri Cnce)>nd cu Cnregistrarea curent.
R1'T s)ecific restul Cnregistrrilor )>n la sf>ritul ta4elei Cnce)>nd cu Cnregistrarea
curent.
1xe?)lu.
=#'T 01XT 7 afiea/ ur?toarele 7 Cnregistrri Cnce)>nd cu Cnregistrarea curent.
8:
Hn ta4elele indexate ;i nu?ai Cn acestea< se )oate reali/a )o/iionarea direct )e o
Cnregistrare )entru o valoare a ex)resiei de indexare )reci/at2 folosind fie instruciunile '11^
[valoare cheie indexT2 #B BGU0F;<Z2 fie funcia '11^;< Cn instruciunea #B astfel #B
'11^;[valoare cheie index.T<Z
Comen-i SET )er?it sta4ilirea unor condiii de lucru vala4ile Cn sesiunea BoxPro de lucru
curent.
'1T 31== activea/ sau de/activea/ sunetele
'1T 31== TG sta4ilete frecvena i durata unui sunet
'1T (G0B#R& deter?in dac tasta [1nterT tre4uie acionat la ieirea dintr%un c>?)
'1T FAT1 s)ecific for?atul datelor calendaristice
'1T F1(#&A=' sta4ilete nu?rul /eci?alelor de afiat )entru datele nu?erice
'1T F1=1T1F K sta4ilete accesul la Cnregistrrile ?arcate )entru tergere
'1T F1BAU=T K s)ecific directorul i unitatea de disc i?)licit ;)o/iionarea intr%un
anu?it director<
'1T F1V#(1 K sta4ilete )erifericul de afiare
'1T 1XA(T s)ecific dac este necesar o )otrivire exact Cn o)eraiile de co?)arare
)entru iruri de caractere
'1T B#=T1R s)ecific condiiile )e care tre4uie s le Cnde)lineasc Cnregistrrile unei
ta4ele )entru a fi accesi4ile
'1T GRF1R sta4ilete ordinea de )arcurgere a Cnregistrrilor unei ta4ele
'1T PR#0T1R K activea/ sau de/activea/ ieirea la i?)ri?ant
'1T PRG(1FUR1 deschide un fiier de )roceduri s)ecificat
'1T R1=AT#G0 TG K sta4ilete o relaie Cntre dou sau ?ai ?ulte ta4ele
'1T R1=AT#G0 GBB B terge o relaie Cntre dou ta4ele
'1T '^#P TG K crea/ o relaie 1%n ;on to ?an*< Cntre o Cnregistrare a unei ta4ele )rinte i
?ai ?ulte Cnregistrri a unei ta4ele co)il
'1T 'AB1TN activea/ sau de/activea/ facilitatea de )rotecie a fiierelor
'1T TA=^ K controlea/ afiarea re/ultatelor unor co?en/i.
Instumente de lucu 4entu ceteea 4oductiHit#ii ;ex. de utili/are Cn BoxPro ,.8 su4
AindoIs<.
% 8eneratorul de meniuri se lansea/ cu co?anda (reate ?enu [nu?e ?eniuT2 sau se selectea/
Bile %T 0eI %T &enu %T 0eI2 Cn caseta Pro?)t" se tastea/ nu?ele ?eniului2 din ?eniul &enu"
se selecteat !eneral G)tionns 2 Cn caseta =ocation se )reci/ea/ locul unde va a)are ?eniul creat
Cn 4ara de ?eniuri Box ;ex. After2 Uel) )entru ca ?eniul nou creat s a)ar du) ?eniul Uel)< a)oi
se selectea/ G^. Fin lista Result se selectea/ 'u4?enu a)oi (reate iar Cn caseta Pro?)t" se
tastea/ o)iunile de ?eniu vertical cores)un/toare ?eniului ori/ontal nou creat i )entru fiecare
o)iune se alege din coloana Result cuv>ntul (o??and iar Cn caseta G)tions se tastea/ FG [nu?e
)roceduraT cores).;dac Cn caseta Pro?)t Cn loc de o)iune se tastea/ i% atunci se va trasa un r>nd
de linii Cntre o)iuni<. Fin ?eniul Progra? se selectea/ !enerate2 se a)as 4utonul Nes i Cn caseta
'ave &enu As se tastea/ nu?ele fiierului Cn care se va salva ?eniul i extensia .?nx2 a)oi se
a)as 4utonul 'ave iar din caseta !enerate &enu se alege !enerate. Pentru execuia ?eniului se d
co?anda FG [nu?e fiier salvatT.?)r2 iar )t.?odificare &GF# (G&& [nu?e fiier salvatT.?)r
Pentru revenire la ?eniul Box se d co?anda '1T 'N'&10U TG F1BAU=T.
1 Creare2 sal4are2tiprire rapoarte sumare se selectea/ Fata4ase%TRe)ort%TEuic@ Re)ort
8.
A)oi selecie 4uton st>nga )t. ra)ort Cn ?od 3roIse2 sau 4uton drea)ta )t. ra)ort Cn ?od (hange2
du) care se salvea/ cu [nu?e fiierT.frx2 care )oate fi editat cu &GF# R1PGRT [nu?e fiierT
i executat din ?eniul Run cu o)iunea Re)ort.
1 Crearea unei aplica.ii din 4ara de ?eniuri BoxPro se selectea/ Run%TA))lication%T0eI2 a)oi
din caseta care a)are se selectea/ 'te)1 )t. creare sau ?odificare ta4el sauJi 'te), )t. creare sau
?odificare ecran i Cn final se a)as 4utonul !enerate. Pentru execuia a)licaiei se selectea/ Run%
TA))lication2 a)oi se selectea/ fiierul cu extensia .a)) de executat i se a)as 4utonul Run.
1 8eneratorul de ecrane +)creen Builder,
1 8eneratorul de rapoarte +Report &riter,
!o"lem# 4o4us#
Utili/>nd generatorul de ?eniuri se adaug ?eniului )rinci)al BoxPro o)iunea ;plicatii
care activea/ un ?eniu )o)u) ce conine o)iunile:
- )tocuri a)elea/ )rocedura 'stoc care reali/ea/ 'ituaia stocurilor de )roduseL
- Oerte<'rodus a)elea/ )rocedura Oerte=p care reali/ea/ 'ituaia ofertelor de )roduse )e
)rodusL
- Oerte<Furnizor % a)elea/ )rocedura Oerte= care reali/ea/ 'ituaia ofertelor de )roduse )e
furni/orL
- #anzari<'rodus % a)elea/ )rocedura #anzari=p care reali/ea/ 'ituaia v>n/rilor de )roduse
)e )rodusL
- #anzari<Client % a)elea/ )rocedura #anzari=c care reali/ea/ 'ituaia v>n/rilor de )roduse )e
client.
88
Lucae de la"oato n1 22
Tema3 !o5amaea ?n Visual Fo;!o
')re deose4ire de )rogra?area )rocedural Cn care un )rogra? const dintr%o secven de
instruciuni2 )roiectarea i )rogra?area orientate s)re o4iect re)re/int o a4ordare nou Cn care
efortul de )rogra?are const Cn )roiectarea o4iectelor co?)onente de sine stttoare ale unei
a)licaii.
+"iecte ?n Visual Fo;!o1
G4iectele Cn ?ediul Visual BoxPro sunt for?ularele i controalele care )ot fi gestionate )rin
inter?ediul )ro)rietilor2 eveni?entelor i ?etodelor i care vor fi incluse Cn a)licaii. 1xtensiile
orientate s)re o4iect ale li?4aDului Visual BoxPro )er?it crearea i Cntreinerea cu uurin a
4i4liotecilor de cod reutili/a4il. Progra?area orientat s)re o4iect este o ?odalitate de a C?)acheta
codul astfel Cnc>t s )oat fi refolosit i Cntreinut ?ai uor. Pri?ul nivel de C?)achetare se
nu?ete clas. G a)licaie este construit din clase i o4iecte. (lasele descriu )ro)rietile i
co?)orta?entul o4iectelor care se ?ai nu?esc i instane ale clasei. Un o4iect are anu?ite
)ro)rieti2 sau atri4ute. Fe exe?)lu2 un auto?o4il are o anu?it denu?ire i o anu?it culoare.
Aceste )ro)rieti )ot fi sta4ilite Cn fa/a de )roiectare sau de execuie.
&etode i eveni?ente asociate o4iectelor
Biecare o4iect recunoate i )oate reaciona la anu?ite aciuni nu?ite eveni?ente iniiate
fie de utili/ator2 fie de siste?. Fe cele ?ai ?ulte ori2 eveni?entele sunt generate de interaciunea
cu utili/atorul. Aciunile utili/atorilor care )ot declana eveni?ente sunt clicurile de ?ouse2
?icrile ?ouse%ului i a)srile de taste. 1veni?ente declanate de siste? sunt iniiali/area unui
o4iect i Cnt>lnirea unei linii de cod care generea/ o eroare. 1veni?entele )ot avea ?etode
asociate. &etodele sunt )roceduri asociate unui o4iect2 difer de )rocedurile Visual BoxPro
o4inuite2 sunt legate indisolu4il de o4iect si sunt a)elate altfel dec>t celelalte )roceduri Visual
BoxPro. Astfel2 dac scrie? cod )entru ?etoda asociat eveni?entului (lic@2 codul res)ectiv este
executat atunci c>nd survine eveni?entul (lic@. &etodele )ot exista i inde)endent de eveni?ente2
ca/ Cn care2 tre4uie a)elate ex)licit Cn cadrul codului. 'etul de eveni?ente este deter?inat ;nu )ot fi
create noi eveni?ente<2 Cn schi?42 setul de ?etode este neli?itat
Pentru o descrierea fiecrei )ro)rieti2 a fiecrui eveni?ent sau control2 )ot fi consultate
fiierele Uel) ale )rogra?ului Visual BoxPro.
Clase ?n Visual Fo;!o
Toate )ro)rietile2 ?etodele i eveni?entele asociate unui o4iect sunt s)ecificate Cn
definiia clasei. (lasele au o serie de caracteristici care )er?it crearea de cod reutili/a4il2 uor de
Cntreinut i anu?e: Cnca)sularea2 su4clasele2 ?otenirea. ')re exe?)lu2 )ro)rietile care
deter?in ele?entele unei casete cu list i codul care se execut atunci c>nd se selectea/ un
ele?ent din list )ot fi Cnca)sulate Cntr%un singur control )e care%l adug? la un for?ular.
G su4clas )oate avea toate funcionalitile unei clase existente2 )recu? i controale sau
funcionaliti su)li?entare. (rearea su4claselor este una dintre cile de reducere a di?ensiunilor
codului Astfel )entru reali/area unei a)licaii se Cnce)e cu definirea unei clase c>t ?ai a)ro)iate de
sco)ul ur?rit i a)oi se reali/ea/ )ersonali/area acesteia. Prin ?otenire2 o ?odificare efectuat
asu)ra unei clase se reflect Cn toate su4clasele derivate din aceasta.
86
Containee i nonBcontainee
(ele dou ti)uri )ri?are de clase Visual BoxPro2 i2 )rin extensie2 de o4iecte Visual
BoxPro2 sunt clasele container i clasele control. (ontainerele )ot conine alte o4iecte i )er?it
accesul la acestea. Astfel2 dac se creea/ o clas container care cu)rinde dou casete cu list i
dou 4utoane de co?and2 care a)oi se vor aduga la un for?ular un o4iect 4a/at )e aceast clas2
fiecare o4iect )oate fi ?ani)ulat individual2 at>t Cn ?o?entul )roiectrii c>t i Cn ?o?entul
execuiei. 'e )oate crea c>te o clas )entru fiecare control i fiecare for?ular2 Cns Cn acest ?od Cn
final vor exista ?ai ?ulte clase care fac ca? acelai lucru2 dar care tre4uie Cntreinute se)arat. 'e
)oate crea o clas control )entru o funcionalitate generic. Astfel s)re exe?)lu2 4utoanele de
co?and care )er?it utili/atorului s ?ute indicatorul de Cnregistrri Cn cadrul unei ta4ele2 un 4uton
care s Cnchid for?ularul i un 4uton de asisten )ot fi salvate su4 for? de clase i )ot fi
adugate la for?ulare c>nd se dorete aceast funcionalitate. 'e )ot crea clase )entru seturi de
for?ulare2 for?ulare i controale cu o anu?it Cnfiare2 astfel Cnc>t toate co?)onentele a)licaiei
s ai4 acelai as)ect.
Visual BoxPro )er?ite crearea ?ai ?ultor ti)uri de clase2 fiecare cu )ro)riile sale
caracteristici2 ti)ul clasei )ut>nd fi )reci/at Cn caseta de dialog 0eI (lass sau Cn clau/a A' a
co?en/ii (R1AT1 (=A''. 'e )ot crea su4clase ale ?aDoritii claselor de 4a/ din Visual BoxPro
cu aDutorul )roiectantului de (lase ;(lass Fesigner<.
EHenimentele din Visual Fo;!o
(odul )entru eveni?ente este declanat auto?at de ctre siste? ca rs)uns la o anu?it
aciune a utili/atorului. ')re exe?)lu2 codul scris )entru eveni?entul (lic@ este )relucrat auto?at
de siste? atunci c>nd utili/atorul execut clic )e un control.
(odul )entru eveni?ente )oate fi declanat i de eveni?ente din siste?2 ca Cn ca/ul eveni?entului
Ti?er al controlului ti?er ;ceas<.
Princi)alele eveni?ente din Visual BoxPro2 vala4ile )entru ?aDoritatea controalelor sunt
)re/entate Cn ta4elul de ?ai Dos:
*4enimentul Momentul declan/rii e4enimentului
#nit =a crearea unui o4iect
Festro* =a descrcarea unui o4iect din ?e?orie
(lic@ (>nd utili/atorul execut clic )e o4iect cu 4utonul st>nga al
?ouse%ului
F4l(lic@ (>nd utili/atorul execut du4lu%clic )e o4iect cu 4utonul
st>nga al ?ouse%ului
Right(lic@ (>nd utili/atorul execut clic )e o4iect cu 4utonul drea)ta al ?ouse%ului
!etBocus (>nd o4iectul devine inta intrrilor ;)ri?ete focusul<2 fie datorit
aciunii utili/atorului ;de exe?)lu2 la a)sarea tastei Ta4 sau la executarea
unui clic<2 fie ca ur?are a ?etodei 'etBocus din )rogra?
=ostBocus (>nd o4iectul nu ?ai este inta intrrilor ;)ierde focusul<2 fie datorit aciunii
utili/atorului ;de exe?)lu2 la a)sarea tastei Ta4 sau la executarea unui clic<2
fie ca ur?are a ?etodei 'etBocus din )rogra?
^e*Press =a a)sarea i eli4erarea unei taste de ctre utili/ator
&ouseFoI =a a)sarea 4utonului ?ouse%ului de ctre utili/ator atunci c>nd
indicatorul
?ouse%ului se afl deasu)ra o4iectului
&ouse&ove (>nd utili/atorul de)lasea/ indicatorul ?ouse%ului deasu)ra o4iectului
89
&ouseU) (>nd utili/atorul eli4erea/ 4utonul ?ouse%ului Cn ti?) ce indicatorul
?ouse%ului se afl deasu)ra o4iectului
Ceaea unei "a-e de date
(rearea unei 4a/e de date se )oate reali/a cu aDutorul interfeei sau al li?4aDului. =a crearea
4a/ei de date2 se reunesc ta4elele Cntr%o singur colecie ;fiier cu extensia .d4c< i se creea/
dicionarul de date Cn care se ?e?orea/ o serie de infor?aii )rintre care: cheile )ri?are i
candidate2 relaiile )ersistente dintre ta4elele 4a/ei de date2 nu?ele lungi )entru ta4ele i c>?)uri2
titlurile de c>?)uri afiate Cn fereastra 3roIse i Cn anteturile coloanelor unei grile2 valorile
i?)licite ale c>?)urilor2 clasele i?)licite ale controalelor folosite Cn for?ulare2 ?tile de intrare
i for?atele de afiare a c>?)urilor2 regulile la nivel de c>?) i de Cnregistrare2 declanatoarele2
)rocedurile stocate2 conexiunile la surse de date externe2 vederile locale i externe2 co?entariile
)entru fiecare c>?)2 ta4el i 4a/ de date
Unele faciliti ale dicionarului de date2 cu? ar fi nu?ele lungi )entru c>?)uri2 cheile
)ri?are i candidate2 valorile i?)licite2 regulile la nivel de c>?) i de Cnregistrare i
declanatoarele2 sunt stocate Cn fiierul .d4c2 dar sunt create Cn cadrul )rocesului de construire a unei
ta4ele sau vederi.
(rearea unei noi 4a/e de date se reali/ea/ astfel:
1. cu !estionarul de Proiecte2 se selectea/ fia cu eticheta Fata2 iar din lista afiat se selectea/
Fata4ases i a)oi 0eI.
sau
,. cu co?anda (R1AT1 FATA3A'1
=a crearea unei 4a/e de date se crea/ un container de 4a/ de date vid2 cruia i se vor
aduga ulterior o4iectetele ce se vor crea )entru aceasta.
Ad#u5aea ta"elelo la o "a-# de date
G ta4el Visual BoxPro )oate exista Cn una din ur?toarele dou situaii: ca ta4el li4er
;extern<2 adic su4 for? de fiier .d4f neasociat vreunei 4a/e de date2 sau ca ta4el dintr%o 4a/ de
date2 adic su4 for? de fiier .d4f asociat unei 4a/e de date. Ta4elele asociate unei 4a/e de date au
unele )ro)rieti s)ecifice2 care nu exist Cn cadrul ta4elelor externe2 cu? ar fi regulile la nivel de
c>?) i de Cnregistrare2 declanatoarele i relaiile )ersistente. Ta4elele )ot fi asociate cu o 4a/ de
date )rin crearea lor Cn cadrul unei 4a/e de date deschise Cn fundal sau )rin adugarea ta4elelor
existente la o 4a/ de date.
Pentru adugarea unei ta4ele li4ere la o 4a/ de date se )oate )roceda astfel:
- Cn cadrul !estionarului de Proiecte2 se selectea/ Ta4les din cadrul fielor All sau Fata2
a)oi se selectea/ Add.
sau
% cu co?anda AFF TA3=1.
1xe?)lu. 'ecvena de instruciuni de ?ai Dos deschide 4a/a de date 3a/aTest i Ci adaug ta4ela
li4er Ta4Test:
GP10 FATA3A'1 3a/aTest
AFF TA3=1 Ta4Test
G ta4el existent )oate fi asociat la o singur 4a/ de date.
G ta4el ;un fiier .F3B< )oate fi folosit i fr a fi Cncor)orat Cntr%o 4a/ de date.
Pentru a face o referin la o ta4el dintr%o alt 4a/ de date dec>t cea curent se folosete
si?4olul O"2 ca de exe?)lu:
85
U'1 3a/aTestOTa4Test
3RGA'1
Pentru eli?inarea unei ta4ele dintr%o 4a/ de date se )oate utili/a una din cile:
- Cn cadrul !estionarului de Proiecte ;ProDect &anager<2 se selectea/ nu?ele ta4elei2 a)oi se
selectea/ Re?ove.
sau
- Cn cadrul Proiectantului de 3a/e de Fate ;Fata4ase Fesigner<2 se selectea/ ta4ela i se alege
co?anda Re?ove din ?eniul Fata4ase.
sau
% cu co?anda R1&GV1 TA3=1.
1xe?)lu2 codul de ?ai Dos deschide 4a/a de date 3a/aTest i eli?in ta4ela Ta4Test
GP10 FAT13A'1 3a/aTest
R1&GV1 TA3=1 Ta4Test
=a eli?inarea unei ta4ele dintr%o 4a/ de date nu se reali/ea/ i tergerea auto?at a
fiierului asociat ta4elei.
Pentru eli?inarea ta4elei din 4a/a de date i tergerea fiierului .d4f al ta4elei de )e hard%disc2
se va folosi clau/a F1=1T1 a co?en/ii R1&GV1 TA3=1 sau co?anda FRGP TA3=1 astfel:
GP10 FATA3A'1 3a/aTest
R1&GV1 TA3=1 Ta4Test F1=1T1
Ceae elaii 4esistente ?nte ta"elele "a-ei de date
Aceste relaii sunt create utili/>nd indecii ;sunt create Cntre indeci i nu Cntre c>?)uri< i
sunt folosite auto?at dre)t condiii i?)licite de legare Cn ferestrele Proiectantului de interogri i
de Vederi ;Euer* Fesigner i VieI Fesigner< i )entru a stoca infor?aii des)re integritatea
referenial.
Pentru (rearea unei relaii )ersistente Cntre ta4ele se )oate )roceda astfel:
- Cn fereastra Proiectantului de 3a/e de Fate ;Fata4ase Fesigner<2 se alege nu?ele indexului ce
ur?ea/ a fi legat i a)oi se trage cu ?ouse%ul s)re nu?ele indexului din ta4ela ce ur?ea/ a fi
legat
sau
- se utili/ea/ clau/a BGR1#!0 ^1N Cn co?en/ile (R1AT1 TA3=1 sau A=T1R TA3=1.
Hn fereastra Proiectantului de 3a/e de Fate ;Fata4ase Fesigner<2 se va vedea o linie care
leag ta4elele res)ective2 re)re/ent>nd noua relaie )ersistent.
Pentru tergerea unei relaii )ersistente Cntre dou ta4ele se )oate )roceda astfel:
1. Cn cadrul Proiectantului de 3a/e de Fate ;Fata4ase Fesigner<2 se execut
clic )e linia care re)re/int relaia dintre cele dou ta4ele. ;=i?ea liniei de relaie crete
)entru a indica fa)tul c s%a selectat relaia res)ectiv<2 du) care se a)as tasta F1=1T1.
s a u
,. se utili/ea/ clau/a FRGP BGR1#!0 ^1N cu co?anda A=T1R TA3=1.
Ceaea inte5it#ii e<eeniale
(rearea integritii refereniale )resu)une crearea unui set de reguli care s )stre/e
relaiile definite Cntre ta4ele c>nd se inserea/ sau se terg Cnregistrri.
&eninerea integritii refereniale C?)iedic efectuarea ur?toarelor o)eraii:
- Adugarea de Cnregistrri la o ta4el legat atunci c>nd nu exist nici o Cnregistrare asociat Cn
ta4ela )ri?ar.
6-
- &odificarea de valori Cn ta4ela )ri?ar care ar duce la a)ariia de Cnregistrri orfane Cn ta4ela
asociat.
% $tergerea de Cnregistrri din ta4ela )ri?ar atunci c>nd exist Cnregistrri asociate.
'e )ot scrie declanatoare i )roceduri stocate care s Cntreasc integritatea referenial2
Cns Visual BoxPro dis)une de !eneratorul de #ntegritate Referenial ;R#< ;Referenial #ntegrit*
3uilder< care )er?ite s se deter?ine ti)urile de reguli de Cntrit2 ta4elele )entru care se dorete ca
regulile s fie Cntrite i eveni?entele de siste? care vor i?)une ?ediului Visual BoxPro s
verifice res)ectarea regulilor de integritate referenial.
Ceaea Hedeilo
Vederile re)re/int un conce)t utili/at Cn cadrul 4a/elor de date relaionale care )er?ite
)ersonali/area unui set de date din 4a/a de date utili/at Cn cadrul unei a)licaii2 co?4in>nd calitile
ta4elelor i ale interogrilor. Astfel la fel ca Cn ca/ul unei interogri2 se )oate folosi o vedere )entru a
extrage un set de date din una sau ?ai ?ulte ta4ele asociate i la fel ca o ta4el2 o vedere )oate fi
folosit )entru actuali/area infor?aiilor din 4a/a de date.
=a crearea unei vederi2 Visual BoxPro stochea/ definiia acesteia Cn 4a/a de date curent2
definiie ce conine nu?ele ta4elelor utili/ate Cn cadrul vederii2 )recu? i c>?)urile selectate i
valorile )ro)rietilor lor. =a utili/area vederii2 definiia acesteia este folosit de Visual BoxPro
)entru a genera o instruciune 'E= care definete setul de date al vederii.
'e )ot crea dou ti)uri de vederi i anu?e: locale i externe.
Vederile externe folosesc sintaxa 'E= extern )entru a selecta infor?aii din ta4elele unei
surse de date GF3( externe. Vederile locale folosesc sintaxa 'E= Visual BoxPro )entru a selecta
infor?aii din ta4ele sau vederi. =a o vedere local se )oate aduga una sau ?ai ?ulte vederi
externe2 o4in>nd astfel acces la infor?aii Visual BoxPro i la infor?aii GF3( externe din
aceeai vedere. G vedere local )oate fi creat fie )rin inter?ediul Proiectantului de Vederi ;VieI
Fesigner<2 fie cu co?anda (R1AT1 'E= V#1A astfel:.
- Cn cadrul !estionarului de Proiecte ;ProDect &anager<2 se selectea/ o 4a/ de date2 se alege
=ocal VieIs2 a)oi 0eI )entru a deschide fereastra )roiectantului de Vederi ;VieI Fesigner<.
sau
- av>nd deschis o 4a/ de date2 se d co?anda (R1AT1 'E= V#1A )entru a afia fereastra
Proiectantului de Vederi.
sau
- se d co?anda (R1AT1 'E= V#1A cu clau/a A'.
1xe?)lu:
(R1AT1 'E= V#1A VieITest A' '1=1(T Y BRG& 3a/aTestOTa4Test
Fefiniia unei vederi )oate fi tears din 4a/a de date cu aDutorul !estionarului de Proiecte
;ProDect &anager< sau cu co?anda F1=1T1 V#1A ;Cnainte de a terge vederea2 4a/a de date din
care face )arte tre4uie s fie deschis i s fie 4a/a de date curent<.
Pentru accesarea datelor stocate )e un server la distan este necesar s se cree/e o vedere
extern ceea ce necesit conectarea la sursa de date )rin driver%ul GF3( cores)un/tor. 'ursa de
date i conexiunile )ot fi definite din Visual BoxPro. Fefiniia conexiunii va fi stocat Cn 4a/a de
date i va )utea fi referit atunci c>nd se crea/ vederea extern.
Pentru crearea unei conexiuni se )oate )roceda astfel:
% Cn fereastra !estionarului de Proiecte ;ProDect &anager<2 se selectea/ (onnections2 a)oi 0eI
)entru a deschide fereastra Proiectantului de (onexiuni ;(onnection Fesigner<.
sau
61
- se deschide 4a/a de date i se folosete co?anda (R1AT1 (G001(T#G0 )entru a deschide
fereastra Proiectantului de (onexiuni.
s a u
% se folosete co?anda (R1AT1 (G001(T#G02 ur?at de nu?ele conexiunii.
1xe?)lu2 )entru a crea o conexiune Cn 4a/a de date 3a/aTest Cn vederea conectrii la sursa de date
GF3( 'erverRe?ote2 se )oate utili/a ur?toarea secven de instruciuni:
GP10 FATA3A'1 3a/aTest
(R1AT1 (G001(T#G0 conexiune`-1L
FATA'GUR(1 'erverRe?ote utili/ator )arola
Visual BoxPro va activa conexiunea atunci c>nd se va folosi vederea ;)>n la activarea
conexiunii2 aceasta exist doar ca definiie stocat )e un r>nd al fiierului .d4c al 4a/ei de date<. =a
utili/area vederii externe2 Visual BoxPro va crea2 )rin inter?ediul conexiunii indicate Cn cadrul vederii2
o conexiune activ cu sursa de date extern2 du) care tri?ite ctre aceasta o cerere de date folosind
conexiunea activ dre)t canal de legtur.
'e )oate crea o vedere care indic doar nu?ele sursei de date2 nu i denu?irea conexiunii2 iar la
utili/area acestei vederi2 Visual BoxPro va folosi infor?aia GF3( )entru a crea i a activa o conexiune
cu sursa de date.
=a Cnchiderea vederii2 se Cnchide i conexiunea.
Pentru afiarea conexiunilor existente se )oate utili/a co?anda F#'P=AN
(G001(T#G0'.
Fomulaele ?n Visual Fo;!o
Bor?ularele ofer utili/atorului faciliti )entru vi/uali/area i introducerea datelor Cntr%o
4a/ de date2 )ut>nd Cncor)ora o colecie de o4iecte care )ot rs)unde la eveni?entele generate de
utili/ator sau de siste? i av>nd )ro)riile lor )ro)rieti i ?etode.
Pentru )roiectarea for?ularelor2 Visual BoxPro dis)une de un Proiectant de Bor?ulare
;Bor? Fesigner< )uternic2 cu aDutorul cruia utili/atorul )oate crea:
% Fiverse ti)uri de o4iecte Cn cadrul for?ularelorL
% Fate asociate o4iectelor dintr%un for?ularL
% Bor?ulare )rinte i for?ulare fiu ;ierarhii de for?ulare<L
% Bor?ulare ?ulti)le care )ot fi ?ani)ulate C?)reunL
- Bor?ulare 4a/ate )e a4loane definite de utili/ator.
(rearea unui for?ular )oate fi reali/at astfel:
- cu !estionarul de Proiecte ;ProDect &anager<2 se selectea/ Bor?s i 0eI.
s a u
- din ?eniul Bile2 se selectea/ 0eI2 a)oi Bor? i2 a)oi2 0eI Bile
s a u
- c u co?anda (R1AT1 BGR&
Gdat creat for?ularul2 ur?ea/ s i se adauge controalele2 s se configure/e )ro)rietile
controalelor i ale for?ularului i s se scrie codul )entru eveni?ente. Ti)urile de o4iecte care )ot
fi adugate unui for?ular sunt: (ontroale2 (ontainere2 (lase definite de utili/ator2 G4iecte G=1.
Adugarea controalelor standard Visual BoxPro la un for?ular se )oate face cu aDutorul 4arei de
instru?ente (ontrols.
(ontroalele standard Visual BoxPro sunt:
(aset de validare U*)erlegturi (aset cu list (aset de incre?ent
(aset co?4inat #?agine (ontrol G=1 asociat (aset de text
6,
3uton de co?and 1tichet (ontrol container G=1 (ontrol ti?er
(aset de editare =inie Bor? geo?etric
Una dintre cele ?ai )uternice faciliti din Visual BoxPro este )osi4ilitatea crerii de clase
care )ot fi folosite Cn diferite )uncte ale a)licaiei. Fu) ce au fost create2 clasele )ot fi adugate la
for?ulare astfel: din fereastra !estionarului de Proiecte ;ProDect &anager<2se trage clasa Cn cadrul
containerului.
1xist dou ti)uri de controale Cn for?ulare i anu?e: controale care sunt asociate datelor i
controale care nu sunt asociate datelor. Fac utili/atorul interacionea/ cu controalele asociate datelor2
valorile introduse de el sunt stocate Cn sursa de date2 care )oate fi un c>?) de ta4el2 de cursor sau o
varia4il. Un control )oate fi legat de date atri4uind valoarea cores)un/toare )ro)rietii
(ontrol'ource sau2 Cn ca/ul grilelor2 )ro)rietii Record'ource.
Fac utili/atorul nu configurea/ )ro)rietatea (ontrol'ource a unui control2 valoarea )e care o
introduce sau )e care o alege din cadrul controlului este )strat ca valoare a )ro)rietii nefiind salvat
)e hard%disc i nici )strat Cn ?e?orie la ex)irarea duratei de via a controlului.
Ceaea meniuilo i a "aelo de instumente
&eniurile )ot fi create cu aDutorul Proiectantului de &eniuri ;&enu Fesigner< din Visual
BoxPro.
Pentru generarea ?eniului2 din cadrul ?eniului &enu2 se selectea/ !enerate.
'iste?ul de ?eniuri va fi salvat Cntr%un fiier cu extensia .?nx2 iar )rogra?ul ?eniului
generat va fi salvat Cntr%un fiier cu extensia .?)r.
De asemenea , pot fi create meniuri contextuale (meniuri care apar la apsarea
butonului drept al mouse-ului pe un control sau obiect)
Pentru crearea unui ?eniu contextual se )rocedea/ astfel:
1. Cn fereastra !estionarului de Proiecte ;ProDect &anager<2 se selectea/ fia Gther2 din care se
selectea/ &enus2 a)oi 0eI.
,. se selectea/ 'hortcut.
Pe ecran va a)rea Proiectantul de &eniuri (ontextuale ;'hortcut Fesigner< din care )rocesul
de adugare a articolelor de ?eniu este identic cu cel de creare a ?eniurilor.
Pentru fiecare articol de ?eniu se )oate crea un su4?eniu care s cu)rind articole de
?eniu su)li?entare.
=a crearea unui ?eniu2 acesta )oate fi salvat Cntr%un fiier UT&= ;U*)ertext &ar@u)
=anguage< folosind o)iunea 'ave As UT&= din cadrul ?eniului Bile.
Fe ase?enea2 un for?ular )oate fi salvat ca fiier UT&= astfel:
1. 'e deschide ?eniul B#=1
,.. 'e selectea/ 'ave As UT&= din cadrul ?eniului Bile. ;Fac ?eniul a fost ?odificat2 siste?ul
va cere confir?area salvrii ?odificrilor<.
7. 'e introduce nu?ele fiierului UT&= i a)oi se alege 'ave.
Pentru a crea o 4ar de instru?ente cu 4utoane care nu a)ar Cn 4arele de instru?ente
existente2 se )oate defini o clas Tool4ar )ersonali/at.
Visual BoxPro ofer o clas de 4a/ Tool4ar din care se )oate deriva clasa dorit la care )ot
fi adugate o4iecte2 a)oi se )ot defini )ro)rietile2 eveni?entele i ?etodele i Cn final2 4ara de
instru?ente )oate fi adugat unui set de for?ulare.
G 4ar de instru?ente )oate fi adugat la un set de for?ulare2 astfel Cnc>t 4ara de instru?ente
s se deschid odat cu for?ularele res)ective.
67
Ceaea unei a4licaii
Fu) crearea tuturor co?)onentelor funcionale ale unei a)licaii2 acestea )ot fi co?)ilate
Cntr%o singur a)licaie care reunete co?)onentele executa4ile ale )roiectului % for?ulare2 ra)oarte2
?eniuri2 )rogra?e .a.?.d. % Cntr%un fiier unic2 ce )oate fi distri4uit utili/atorilor C?)reun cu datele.
Pentru a crea un )roiect co?)let cu aDutorul co?)onentei A))lication Bra?eIor@2 se )oate folosi
VrDitorul A)licaiei ;A))lication Ai/ard<. Fu) crearea )roiectului2 se va deschide noul !enerator
de A)licaii ;A)lication 3uilder<2 )entru a aduga o 4a/ de date2 ta4ele2 ra)oarte i for?ulare. Pentru
a )utea distri4ui a)licaia2 se va crea fie un fiier a)licaie2 cu extensia .a))2 fie un fiier executa4il cu
extensia .exe.
Proiectarea unei a)licaii G=1.
G4iecte cu? sunt docu?entele Aord i foile de calcul 1xcel2 )ot fi legate sau Cnglo4ate )rin
inter?ediul controlului G=1 (ontainer Cn cadrul for?ularelor2 i )ot fi stocate Cn c>?)urile de ti)
!eneral ale unei ta4ele2 ur?>nd s fie afiate Cn for?ulare cu aDutorul controlului G=1 3ound.
Fiferena dintre legare i Cnglo4are const Cn locul de stocare a datelor astfel: Cnglo4area )strea/
datele Cn ta4el sau Cn for?ular2 iar legarea refer o4iectele din locul unde sunt stocate.
Soluii clientBseHe
A)licaiile clientJserver co?4in funcionalitatea ?ediului Visual BoxPro de )e calculatorul
local cu avantaDele de stocare i de securitate oferite de un server extern. Pentru aceasta2 se )oate
crea ?ai Cnt>i un )rototi) local al a)licaiei2 du) care2 a)licaia )oate fi transfor?at )entru un
?ediu clientJserver )rin inter?ediul VrDitorului de Transfor?are ;U)si/ing Ai/ard<. 'e )oate
utili/a tehnologia 'E= de transfer )entru a C?4unti a)licaia transfor?at. Hn ti?) ce vederile
externe ofer acces la datele de )e server2 tehnologia 'E= de transfer )er?ite trans?iterea de
co?en/i direct ctre server folosind funcia 'E=1X1(;<.
(ele ?ai )erfor?ante soluii de creare a unei a)licaii Visual BoxPro clientJserver se o4in
co?4in>nd vederile i tehnologia 'E= de transfer.
!o"lem# 4o4us#
1x)ortai ta4elele 4a/ei de date Burni/ori(lienti din A((1'' Cn Visual BoxPro. (reai 4a/a
de date Burni/ori(lienti Cn Visual BoxPro i adugai ta4elele ex)ortate. (reai Cn Visual BoxPro
vederile cores)un/toare interogrilor create Cn A((1''.
6:
Lucae de la"oato n1 2'
Tema3 Lim"aAul SLL1 Ceaea "a-ei de date1
Comen-i 4entu ceaea0actuali-aea scJemei "a-ei de date
Adugarea relaiilor Cntr%o 4a/ de date Kco?anda CR*;T* T;B%* are sintaxa:
CR*;T* T;B%* >nume rela.ie?@+>nume atribut? >tip dat?2A,B
1xe?)lu %crearea ta4elei 'ersoane Cn )C% Oracle se reali/ea/ cu co?anda:
CR*;T* T;B%* 'ersoane +Nrcrt N(MB*R (NIC(* NOT N(%%2Nume CD;R+EF,2'renume
CD;R+EF,2Datan D;T*2)e7ul CD;R2;dresa #;RCD;RG+FH,,I
G nou relaie )oate fi creat i ca re/ultat al unei o)eraii de interogare astfel:
CR*;T* T;B%* >nume rela.ie? +>nume atribut? >tip dat?2A, ;) >subinterogare?
AdugareaJ?odificarea de atri4ute )entru o relaie existent se reali/ea/ cu co?anda:
;%T*R T;B%* >nume rela.ie? ;DDJMODIFY +> nume atribut? >tip dat?2A,
$tergerea unei relaii se reali/ea/ cu co?anda:
DRO' T;B%* >nume rela.ie?
Comen-i 4entu o4timi-aea inteo5#ilo
Una din )rinci)alele ci de o)ti?i/are a ti?)ilor de interogare a unei 4a/e de date este
indexarea. Un index )oate fi )rivit ca o relaie cu dou atri4ute i anu?e:
- )ri?ul atri4ut conine valorile atri4utelor relaiei du) care se crea/ indexulL
- al doilea atri4ut conine un )ointer ;adresa< la locaia tu)lelor cores)un/toare.
(rearea unui index se reali/ea/ cu co?anda:
CR*;T* @(NIC(*B IND*K >nume inde7?
ON >nume rela.ie?+>nume atribut?@;)CJD*)CB2A,
Fac )entru atri4utele utili/ate Cn clau/a &D*R* a unor instruciuni 'E= au fost creai indeci2
atunci acetia vor fi utili/ai Cn vederea o)ti?i/rii ti?)ului de )relucrare. Feci/ia de utili/are sau
nu a unui index este luat de li?4aDul 'E= i nu de utili/ator. Pentru aceasta fiecare ?odel de
li?4aD 'E= dis)une de o co?)onent nu?it o)ti?i/ator2 care exa?inea/ interogarea i decide
care este ?odul o)ti? de o4inere a re/ultatului.
G alt tehnic de o)ti?i/are a interogrilor este tehnica clustering" dis)oni4il Cn
GRA(=1 i care const Cn gru)area tu)lelor din ?ai ?ulte relaii i stocarea lor Cn aceeai /on )e
disc.
Contolul datelo Mcomen-i &CLN
Vedei
G vedere este o relaie virtual2 definit )lec>nd de la alte relaii din 4a/a de date i care nu
conine date i deci nu ocu) s)aiu fi/ic )e disc. Vederile se definesc Cn dou sco)uri i anu?e:
- )entru a si?)lifica accesul utili/atorilor la dateL
- )entru a asigura )rotecia i securitatea datelor fiecrui utili/ator fiindu%i )er?is acces la o
)oriune a 4a/ei de date i )ut>nd efectua doar anu?ite o)eraii ;confor? dre)turilor de acces
s)ecificate cu co?en/ile 8R;NT<R*#O9*<.
Asu)ra unei vederi se )ot efectua aceleai o)eraii ca i asu)ra unei relaii cu deose4irea c vederile
nu conin date i c orice ?odificri efectuate asu)ra datelor sunt reflectate i Cn vederi. Astfel2
asu)ra unei vederi se )ot reali/a o)eraiile:
% creare vedere ;(R1AT1 V#1A<L
6.
- creare sinoni? )entru vedere ;(R1AT1 'N0G0#&<L
- tergere vedere ;FRGP V#1A<L
- interogare vedere ;'1=1(T<L
- actuali/are date din vedere ;UPFAT1<L
- tergere date din vedere ;F1=1T1<L
- adugare date ;#0'1RT<.
(rearea unei vederi se reali/ea/ cu co?anda CR*;T* #I*& care are sintaxa:
CR*;T* #I*& >nume 4edere? @>lista atribute?B
;) >raza )*%*CT? @&ITD CD*C9 O'TIONB
1xe?)lu:
CR*;T* #I*& )tocuriDE+Codp2Denp2(mp2Cant2'ret2#aloare,
;) )*%*CT )tocuri5Codp2 Denp2(mp2Cant2'ret2CantL'ret FROM 'roduse2)tocuri
&D*R* 'roduse5codpM)tocuri5Codp ;ND CodDep M NDEN
#nterogarea vederii se va reali/a cu co?anda
)*%*CT L FROM )tocuriDE
Utili/area o)iunii &ITD CD*C9 O'TION asigur fa)tul c nici o tu)l nu va fi adaugat
sau actuali/at cu instruciunile IN)*RT2 ('D;T*2 dac nu sunt res)ectate condiiile s)ecificate Cn
clau/a &D*R* a instruciunii )*%*CT din definiia vederii.
Pentru acordarea sau retragerea dre)turilor de acces la 4a/a de date )rin inter?ediul
vi/uali/rilor se vor folosi co?en/i de for?a:
8R;NT @;%%J)*%*CTJIN)*RTJ('D;T*JD*%*T*B ON >nume 4edere?
TO >nume utilizator?
sau
R*#O9* @;%%J)*%*CTJIN)*RTJ('D;T*JD*%*T*B ON >nume 4edere?
FROM >nume utilizator?
Asigurarea securitii datelor )resu)une definirea dre)turilor de acces ale utili/atorilor i
)rotecia siste?ului la accesul neautori/at. Hn acest sens asigurarea securitii se reali/ea/ )e dou
niveluri i anu?e:
% nivelul 1 acordarea dre)tului de acces la siste?L
- nivelul , acordarea dre)tului de acces la nivel de relaii.
Pentru conectarea utili/atorilor la siste? Cn ?aDoritatea versiunilor de 'E= se utili/ea/ un
nu?e de utili/ator i o )arol.
Referitor la dre)turile de acces la nivel de relaie Cn siste?ele ?ulti%user tre4uie )reci/at
utili/atorul care a creat relaia ;)ro)rietarul relaiei<. Biecare utili/ator are dre)turi doar asu)ra
)ro)riilor relaii2 iar dre)turi asu)ra unor relaii create de ali utili/atori )ot fi acordate )rin
co?anda 8R;NT i )ot fi retrase )rin co?anda R*#O9*.
Fatele )rivind definirea 4a/ei de date2 utili/atorii i dre)turile de acces sunt stocate Cn
dicionarul de date i sunt gestionate de ctre siste?ul de gestiune a 4a/ei de date ;'!3FR<.
Hn cele ce ur?ea/ se va )re/enta ?odul de reali/are a celor dou nivele de securitate Cn
cadrul siste?ului GRA(=1.
NiHelul 2 de secuitate a datelo se reali/ea/ cu co?anda:
8R;NT >autorizare2A? TO >nume utilizator? @ID*NTIFI*D BY >parola?B
unde [autori/areT )oate fi:
- DB; confer utili/atorului dre)tul de efectuare a oricrei o)eraii asu)ra oricrei
relaii din 4a/a de dateL
68
- CONN*CT confer utili/atorului dre)tul de a a face interogri ;)*%*CT< i
actuali/ri ;IN)*RT2 ('D;T*2 D*%*T*< asu)ra relaiilor create de ali utili/atori2 Cns
nu )er?ite utili/atorului s cree/e relaii ;CR*;T*< sau s tearg relaii create de ali
utili/atori ;DRO'<L
- R*)O(RC* confer utili/atorului dre)turile ce re/ult din autori/area CONN*CT i
Cn )lus dre)tul de a crea relaii ;CR*;T*< i de a terge relaii ce Ci a)arin ;DRO'<.
Unui utili/ator Ci )ot fi acordate ?ai ?ulte ti)uri de autori/ri Cn cadrul unei singure co?en/i
8R;NT.
Parola sta4ilit )entru un utili/ator )oate fi ?odificat )rintr%o co?and 8R;NT ulterioar
s)re exe?)lu astfel:
8R;NT R*)O(RC* TO >nume utilizator? ID*NTIFI*D BY >noua parol?
Unui utili/ator cruia i s%a acordat un ti) de autori/are Ci )ot fi acordate i alte ti)uri de autori/are
)rin co?en/i !RA0T ulterioare.
Retragerea autori/rilor acordate unui utili/ator se reali/ea/ cu co?anda:
R*#O9* >autorizare2A? FROM >nume utilizator?
NiHelul ' de secuitate a datelo
Pentru acordarea res)ectiv retragerea dre)turilor de acces la relaii se utili/ea/ co?en/ile
8R;NT res)ectiv R*#O9* cu ur?toarea sintax:
8R;NT ;%%J>drept de acces?2A ON >nume rela.ie?
TO >nume utilizator?J'(B%IC @&ITD 8R;NT O'TIONB
res)ectiv
R*#O9* ;%%J>drept de acces?2A ON >nume rela.ie? FROM >nume utilizator?J'(B%IC
Privilegiile ;dre)turile de acces< )ot fi acordate sau retrase de ur?toarele categorii de utili/atori:
- utili/atorii cu nivel de autori/are DB;I
- )ro)rietarii relaiilorL
- utili/atorii autori/ai cu o)iunea &ITD 8R;NT O'TION5
Prin s)ecificarea '(B%IC acordarea res)ectiv retragerea dre)turilor de acces se a)lic
tuturor utili/atorilor.
Prin s)ecificarea &ITD 8R;NT O'TION2 utili/atorul res)ectiv )oate la r>ndul su s
acorde aceleai dre)turi sau ?ai )uine altor utili/atori.
Hn OR;C%* )ot fi acordate ur?toarele dre)turi de access asu)ra relaiilor:
)*%*CT2 IN)*RT2 D*%*T*2 ;%T*R2 ('D;T*2 CR*;T*2DRO' )entru ta4ele i indeci.
Fre)turile de acces )ot fi acordate asu)ra Cntregii relaii2 sau doar asu)ra anu?itor atri4ute
ale relaiei.
1xe?)le:
Acordarea tuturor dre)turilor de acces utili/atorilor Ionescu2 'opescu2 asu)ra relaiei
'ersoane care a)arine utili/atorului #asilescu se reali/ea/ )rin co?anda:
8R;NT ;%% ON #asilescu5'ersoane TO Ionescu2'opescu
Acordarea tuturor utili/atorilor2 dre)turile )%*CT2IN)*RT2('D;T* asu)ra relaiei
'roduse a)arin>nd utili/atorului Ionescu se reali/ea/ cu co?anda:
8R;NT )*%*CT2IN)*RT2('D;T* ON Ionescu5'roduse TO '(B%IC
Acordarea )rivilegiilor )*%*CT2('D;T* nu?ai asu)ra atri4utelor Cod'2 Denp din relaia
'roduse a)arin>nd utili/atorului Ionescu2 utili/atorului 'opescu cu condiia ca acesta la r>ndul su
s )oat acorda oricrui alt utili/ator aceleai dre)turi sau ?ai )uine2 se reali/ea/ cu co?anda:
8R;NT )*%*CT2('D;T* ON Ionescu5'roduse+Cod'rodus2Denumire,
66
TO 'opescu &ITD 8R;NT O'TION
Retragerea dre)turilor de acces IN)*RT2D*%*T* asu)ra relaiei 'ersoane a)arin>nd
utili/atorului #asilescu2 utili/atorului Ionescu se reali/ea/ cu co?anda:
R*#O9* IN)*RT2D*%*T* ON #asilescu5'ersoane FROM Ionescu
Instuciuni 4entu inseaea i actuali-aea datelo ?n ta"ele
#nserarea datelor K co?anda IN)*RT are ur?toarea sintax:
IN)*RT INTO >nume relatie?J>nume 4edere? @+>nume atribut?A,B
@#;%(*)B >lista 4alori?J>subinterogare?
1xe?)le:
Bie ta4ela Persoane;0rcrt20u?e2Prenu?e2 Fatan2 'exul2 Adresa<
IN)*RT INTO 'ersoane #;%(*) +E2OIonescuO2OIonO2HF<GP<QG2OMO2O)ucea4aO,
;adaug o Cnregistrare Cn ta4ela 'ersoane co?)let>nd toate atri4utele<
IN)*RT INTO 'ersoane+Nrcrt2Nume2'renume, #;%(*) +G2OIonescuO2O;naO,
;adaug o Cnregistrare Cn 'ersoane co?)let>nd nu?ai atri4utele 0rcrt20u?e2 Prenu?e<
Pentru a insera Cn ta4ela 'ersF;0rcrt20u?e2Prenu?e< toate Cnregistrrile din ta4ela 'ersoane
)entru care 'exul\bBb se scrie co?anda:
IN)*RT INTO 'ersF+Nrcrt2Nume2'renume, )*%*CT Nrcrt2Nume2'renume
FROM 'ersoane &D*R* )e7ul M RFO
Actuali/area datelor K co?anda ('D;T* are sintaxa:
('D;T* >nume rela.ie?J>nume 4edere?
)*T >nume atribut? M >e7presie?2A@&D*R* >condi.ie?B
(ondiia din clau/a &D*R* definete tu)lele care vor face o4iectul actuali/rii. (lau/a &D*R*
)oate conine i o su4interogare.
1xe?)le:
('D;T* 'ersoane )*T Nume M R'opescuO2 'renume M R;na MariaO
&D*R* Nume M RIonescuO ;ND 'renume M R;naO
;actuali/ea/ nu?ele i )renu?ele )ersoanei Ionescu ;na cu valorile 'opescu res)ectiv ;na
Maria<.
('D;T* #anzari )*T 'ret M 'retLE5G &D*R* Cod' IN
+)*%*CT Cod' FROM Facturi &D*R* Numar M EGH ;ND #anzari5CodcMFacturi5Codc ,
;reali/ea/ ?aDorarea )reului cu ,-W )entru )rodusele v>ndute cu factura 1,-<.
Fac Cn co?anda ('D;T* clau/a &D*R* este o?is2 actuali/area se va efectua asu)ra tuturor
tu)lelor relaiei.
$tergerea datelor K co?anda D*%*T* are sintaxa:
D*%*T* FROM >nume rela.ie?J>nume 4edere? @&D*R* >condi.ie?B
unde [condiieT )oate fi o condiie si?)l2 o ex)resie sau o su4interogare.
1xe?)le:
D*%*T* FROM )tocuri &D*R* Cant M H
;terge toate Cnregistrrile din ta4ela )tocuri )entru care c>?)ul Cant are valoarea -<.
D*%*T* Oerte
;terge toate Cnregistrrile din ta4ela Oerte<.
Comen-i 4entu 5estiunea tan-aciilo
Tran/acia este o succesiune de instruciuni 'E= gru)ate Cntr%un 4loc de instruciuni
utili/ate )entru actuali/area iJsau interogarea datelor din 4a/a de date. G tran/acie se consider
69
Cncheiat du) reali/area tuturor o)eraiilor )e care le conine. G)eraiile coninute Cntr%o tran/acie
)ot fi reali/ate efectiv Cn 4a/a de date sau nu2 fie auto?at de ctre siste? du) fiecare o)eraie2 fie
)rintr%o co?and ex)licit dat du) o succesiune de o)eraii. Astfel salvarea auto?at de ctre
siste? a ?odificrilor este reali/at )rin co?anda
)*T ;(TOCOMMIT ON
Fac iniial a fost s)ecificat co?anda '1T AUTG(G&&#T GBB2 salvarea ?odificrilor efectuate
asu)ra datelor se reali/ea/ )rin co?anda (G&&#T2 iar a4andonarea ?odificrilor se reali/ea/
)rin co?anda RG==3A(^.
3locul de o)eraii ce definesc o tran/acie )oate fi deli?itat de instruciunile :
B*8IN TR;N);CTION
*ND TR;N);CTION
;)entru unele siste?e '!3FR cu? ar fi d3A'1 #V 'E= aceste deli?itri sunt o4ligatorii<.

!o"lem# e-olHat#
'e lansea/ Cn execuie 'E= Plus Gracle su4 utili/atorul s!stem ;figura :6<.
Hn 4a/a de date GR(= su4 '.!.3.F. Gracle se crea/ utili/atorul U1 identificat )rin )arola
PA1 i i se acord )rivilegiile (G001(T2 R1'GUR(1 ;figura :9<.
'e Cnchide sesiunea de lucru 'E= Plus a utili/atorului s!stem ;cu instruciunea 1X#T< i se
deschide o nou sesiune de lucru 'E= Plus )entru utili/atorul U1 ;figura :5<.
'e crea/ ta4ela Produse i se inserea/ dou Cnregistrri ;figura .-<.
!o"lem# 4o4us#
'e crea/ utili/atorul U, identificat )rin )arola PA,.
'u4 utili/atorul U1 se crea/ ta4elele 4a/ei de date Burni/ori(lienti i se inserea/ date Cn
fiecare ta4el.
'u4 utili/atorul U1 se acord diverse )rivilegii asu)ra ta4elelor2 utili/atorului U,.
Utili/atorul U1 retrage o serie de )rivilegii utili/atorului U,.
65
9-
Fi5ua >D1 (reare utili/ator U1 i acordare )rivilegii (G001(T2 R1'GUR(1
Fi5ua >F1 =ansare 'E= Plus GRA(=1 )entru utili/atorul s*ste?
ORCL
91
Fi5ua )(1 (reare ta4el $roduse i inserare dou Cnregistrri
Fi5ua >G1 =ansare 'E= Plus GRA(=1 )entru utili/atorul U1
+RCL
Lucae de la"oato n1 2=
Tema3 Lim"aAul SLL1 Inteo5aea "a-elo de date1
Lim"aAul SLL MStuctued Lue@ Lan5ua5e< a fost reali/at Cn cadrul fir?ei #3& ca
li?4aD de interogare al '!3F '*ste? R i ulterior a devenit unul din cele ?ai rs)>ndite li?4aDe
)entru '!3F%urile relaionale. =i?4aDul 'E=2 ca li?4aD de interogare a 4a/elor de date relaionale2
este construit )e 4a/a a dou for?alis?e a4stracte enunate Cn cele ce ur?ea/.
E5 ;lgebra rela.ional )rin care interogrile sunt ex)ri?ate )rin a)licarea unor o)eratori unari
sau 4inari care constituie )ri?itive ce acionea/ asu)ra relaiilor2 re/ultatul interogrilor fiind tot
relaii2 ceea ce )er?ite asocierea i i?4ricarea acestor o)eratori )entru a for?a interogri
co?)lexe. G)eratorii alge4rei relaionale se C?)art Cn dou gru)e i anu?e:
% o)eraii )e ?uli?i ;Reuniunea2 #ntersecia2 Fiferena2 Produsul carte/ian<L
% o)eratori relaionali s)eciali ;'elecia2 Proiecia2 (u)larea ;kG#0<2 Fivi/iunea<.
G5 Calculul rela.ional )rin care interogrile descriu ?uli?ea tu)lelor re/ultat )rin s)ecificarea
unui )redicat ;condiie< care tre4uie satisfcut de aceste tu)le.
Hnce)>nd din 1598 li?4aDul 'E= a devenit standard A0'# )entru li?4aDele de interogare
ale 4a/elor de date relaionale fiind utili/at at>t Cn cadrul unor '!3F%uri co?)lexe cu? ar fi '!3F
GRA(=1 ;liderul ?ondial Cn do?eniul 4a/elor de date<2 c>t i Cn cadrul unor '!3F%uri de
co?)lexitate redus cu? ar fi cele din fa?ilia x3ase ;F4ase #V2 BoxPro<.
'tandardul 'E= utili/at )Cn la Cnce)utul anului ,--- este cel reali/at Cn 155, i cunoscut
su4 nu?ele de 'E=b5, sau 'E=,.
0oul standard 'E=7 lansat Cn 1555 are Cn vedere o serie de extensii fa de 'E=, du) cu?
ur?ea/:
- faciliti orientate o4iect )osi4ilitatea de definire de ctre utili/ator a ti)urilor
a4stracte de date care s )er?it descrierea de ?etode2 identitatea o4iectelor2 su4ti)uri
i ?otenire2 )oli?orfis? etc.L
- structuri de control )entru a conferi li?4aDului co?)letitudine de calcul ;#B2 BGR2
AU#=12 etc.< )entru a deveni un li?4aD de sine stttor a crui )utere de ex)resie s nu
?ai fie li?itat la nivelul li?4aDelor relaionaleL
- faciliti )entru ex)ri?area )relucrrilor recursiveL
- faciliti de co?unicare Cn reeaL
- faciliti de )relucrare distri4uit ;?ecanis?e )entru crearea2 ?e?orarea i execuia
)rocedurilor la nivelul serverelor de date stored )rocedures<L
- faciliti ?ulti?ediaL
- faciliti )entru tratarea ti?)ului Cn 4a/ele de date.
&odelul relaional al datelor )ro)us de (odd2 relativ la ?ani)ularea datelor2 a fost iniial orientat
exclusiv )e )ro4le?a regsirii datelor )rin o)eraia de interogare a 4a/elor de date2 ulterior ;'E=,2
155-< fiind avute Cn vedere i )ro4le?ele introducerii actuali/rii i eli?inrii datelor.
Inteo5aea "a-elo de date B Fa-a S6(6CT
9,
#nterogarea 4a/elor de date Cn li?4aDul 'E= se reali/ea/ cu aDutorul unei singure
instruciuni i anu?e instruciunea )*%*CT av>nd ur?toarea sintax:
)*%*CT @DI)TINCTB >lista atribute?JL
FROM >lista rela.ii?
@&D*R* >condi.ie?B
@8RO(' BY >lista atribute de grupare?B
@D;#IN8 >condi.ie?B
@ORD*R BY >atributE de ordonare? @;)CBJD*)C2AB
@(NION >raz )*%*CT?B
>lista atribute? este o list ce conine nu?e de atri4ute ;c>?)uri< sau ex)resii construite
utili/>nd atri4ute2 se)arate )rin caracterul 2" i care fac )arte din relaiile ;ta4ele2 vederi<
enu?erate Cn [lista relaiiT din clau/a FROM. 0u?ele fiecrui atri4ut sau ex)resii din [lista
atri4uteT va fi afiat Cn ca)ul de ta4el ce re)re/int re/ultatul interogrii2 fiecare atri4ut sau ex)resie
)ut>nd )ri?i un alias folosind s)ecificarea A' [aliasT.
(aracterul aYb s)ecific fa)tul c se extrag toate atri4utele ta4elei )reci/ate Cn clau/a
FROM.
(lau/a DI)TINCT )reci/ea/ fa)tul c Cn relaia re/ultat nu )ot a)rea du)licate ;tu)le
identice<.
(lau/a &D*R* )reci/ea/ condiiile de interogare ;condiii care tre4uie s fie satisfcute
de tu)lele interogate2 condiii de cu)lare relaii ;SOIN2 relaii Cntre ta4ele<. Hn clau/a &D*R* )ot fi
utili/ai o)eratori logici ;;ND2 NOT2 OR<2 )redicate ;IN2 %I9*2 B*T&**N2 *KI)T)2 ;%%2 ;NY<2
o)eratori arit?etici ;]2 %2 YY2 J2 Y<2 o)eratori de co?)arare ;\2 e2[2 T2 [\2 T\2 [T<2 )arante/ele ; <
)entru schi?4area ordinii de )rioritate a o)eraiilor2 o)eratorilor2 funcii i alte su4interogri
)*%*CT2 )entru construirea de ex)resii )e care tre4uie s le Cnde)lineasc tu)lele ce constituie
re/ultatul interogrii. Predicatul IN )er?ite s)ecificarea unei liste )entru do?eniul de cutare
)entru un atri4ut2 iar )redicatul B*T&**N )er?ite s)ecificarea unui interval )entru do?eniul de
cutare a valorilor unui atri4ut2 fiind echivalent cu o condiie de for?a:
[atri4utT T\ [li?ita inf. intervalT A0F [atri4utT [\ [li?ita su). intervalT
1xe?)le:
Bie ta4ela Persoane;0rcrt20u?e2Prenu?e2 Fatan2 'exul2 Adresa<
'electarea tuturor Cnregistrrilor din ta4ela Persoane )entru care )ri?ele 6 caractere din c>?)ul
Adresa sunt a'uceavab sau aRduib se reali/ea/ cu co?anda:
)*%*CT L FROM 'ersoane
&D*R* )(B)TR+;dresa2E2T, IN +R)ucea4aO2RRdu.iO,
#nterogarea de ?ai sus este echivalent cu interogarea:
)*%*CT L FROM 'ersoane
&D*R* )(B)TR+;dresa2E2T, M R)ucea4aO OR )(B)TR+;dresa2E2T, M RRdu.iO
'electarea tuturor Cnregistrrilor din ta4ela Persoane )entru care data naterii este cu)rins Cntre
-1J-1J6, i -1J-1J9, se reali/ea/ astfel:
)*%*CT L FROM 'ersoane &D*R* Datan B*T&**N UHE<HE<TGV ;ND UHE<HE<QGV
#nterogarea de ?ai sus este echivalent cu interogarea:
)*%*CT L FROM 'ersoane &D*R* Datan ?M UHE<HE<TGV ;ND Datan >M UHE<HE<QGV
Predicatul =#^1 )er?ite selecia irurilor de caractere care conin anu?ite caractere s)ecificate
)rin inter?ediul unei ?ti definite cu aDutorul unor caractere s)eciale ;W2 ` Cn d3A'1 #V2 BoxPro2
GRA(=12 sau Y2 g Cn #0BGR&#X<
97
1xe?)le:
)*%*CT L FROM 'ersoane &D*R* Nume %I9* RWaO
;selectea/ toate Cnregistrrile din ta4ela Persoane )entru care valorile atri4utului 0u?e se ter?in
cu litera aab<.
)*%*CT Nume2'renume2Datan FROM 'ersoane &D*R* Nume %I9* R;WuO
;selectea/ valorile atri4utelor 0u?e2 Prenu?e2 Fatan )entru toate Cnregistrrile din ta4ela
Persoane )entru care )ri?a liter din 0u?e este aAb iar ulti?a liter este aub<.
)*%*CT Nume FROM 'ersoane &D*R* Nume %I9* R=oWO
;selectea/ valorile atri4utului 0u?e )entru toate Cnregistrrile din ta4ela Persoane )entru care
)ri?a liter din 0u?e este orice liter2 a doua liter din 0u?e este litera aob i Cnce)>nd din )o/iia
a treia nu?ele )oate conine orice litere.<
Predicatele ;%%2 ;NY2 *KI)T) se utili/ea/ )entru interogri ce conin su4interogri2 Cn vederea
verificrii anu?itor condiii ce tre4uie Cnde)linite Cntre re/ultatele interogrii i re/ultatele
su4interogrii.
(lau/a 8RO(' BY reali/ea/ gru)area tu)lelor unei relaii )e 4a/a valorilor unui atri4ut
sau gru) de atri4ute i generea/ o singur tu)l )entru fiecare gru) de tu)le av>nd aceeai valoare
)entru atri4utele care definesc gru)ul. Atri4utele care definesc gru)ul tre4uie o4ligatoriu s se
regseasc Cn lista atri4utelor interogate [lista atri4uteT.
Fe ase?enea asu)ra unor atri4ute )ot fi a)licate funcii agregat:
- AV!;[atri4utT< ?edia valorilor atri4utului s)ecificat ca )ara?etru2 )e gru)L
- 'U&;[atri4utT< su?a valorilor atri4utului s)ecificat ca )ara?etru2 )e gru)L
- &AX;[atri4utT< ?axi?u? valorilor atri4utului s)ecificat ca )ara?etru2 )e gru)L
- &#0;[atri4utT< ?ini?u? valorilor atri4utului s)ecificat ca )ara?etru2 )e gru)L
- (GU0T;[atri4utT< nu?rul Cnregistrrilor )e gru)are du) [atri4utT.
G4servaie. [atri4utT )oate fi fie un atri4ut2 fie o ex)resie definit utili/>nd atri4ute ale ta4elei.
(lau/a D;#IN82 o)iune a clau/ei 8RO(' BY2 este o for? s)ecial a clau/ei &D*R*
Cntruc>t se a)lic unor gru)uri de tu)le ;i nu unor tu)le< definite de clau/a 8RO(' BY5
1xe?)le:
Bie ta4ela 'tocuri;(odFe)2(odP2U?P2(ant2Pret<
)*%*CT CodDep2)(M+CantL'ret, ;) #aloare2CO(NT+CodDep, ;) Contor
FROM )tocuri 8RO(' BY CodDep
;(alculea/ su?a )roduselor (antYPret )entru toate tu)lele av>nd aceeai valoare Cn c>?)ul
(odFe) i nu?rul Cnregistrrilor din fiecare gru) definit de c>?)ul (odFe) i afisea/ re/ultatele
su4 for? de ta4el av>nd coloanele (odFe)2 Valoare2 (ontor<
)*%*CT CodDep2Cod'2M;K+'ret, FROM )tocuri
8RO(' BY Cod' D;#IN8 M;K+'ret, > EFHHHH
;selectea/ )entru fiecare gru) de Cnregistrri av>nd aceeai valoare Cn c>?)ul (odP2 Cnregistrarea
cu )reul ?axi? ?ai ?ic dec>t 1.----<
(lau/a ORD*R BY 7 permite precizarea ordinii de ai/are a datelor astel:
ORD*R BY >nume atribut E? @;)CBJD*)C2>nume atribut G?@;)CBJD*)C2A
1xe?)lu:
)*%*CT L FROM 'ersoane ORD*R BY Datan D*)C2Nume
;afiea/ toate Cnregistrrile din ta4ela Persoane Cn ordine descresctoare du) data naterii i Cn
cadrul aceleiai date a naterii cresctor du) 0u?e<
9:
(lau/a (NION )er?ite o4inerea re/ultatului a dou sau ?ai ?ulte interogri )rintr%o
singur instruciune )*%*CT5
1xe?)lu:
)*%*CT CodDep2Cod'2Cant FROM )toc='rod &D*R* CodDep M RDepHEO
(NION
)*%*CT CodDep2Cod'2Cant FROM )toc='rod &D*R* Cant ?M EHH
Mselectea/ tu)lele ;(odFe)2(odProd2(ant< din ta4ela 'toc`Prod )entru toate Cnregistrrile )entru
care (odFe) \ aFe)-1b2 la care adaug tu)lele ;(odFe)2(odProd2(ant< din ta4ela 'toc`Prod
)entru toate Cnregistrrile )entru care (ant T\ 1--<.
Pentru a nu se eli?ina tu)lele du)licat tre4uie s)ecificat U0#G0 A==.
Pentru a schi?4a ordinea de afiare a tu)lelor extrase se )oate utili/a clau/a GRF1R 3N a)licat
doar relaiei finale i nu asu)ra fiecrei fra/e '1=1(T.
Re5#siea datelo din dou# sau mai multe elaii
#nterogarea datelor din dou sau ?ai ?ulte ta4ele ;relaii< )resu)une existena unor c>?)uri
co?une )entru reali/area o)eraiei de cu)lare ;o)eratorul kG#0<. Hn fra/a '1=1(T o)eraia de
cu)lare este definit Cn clau/a AU1R1 su4 for?a:
>nume tabelaE?5>c"eieE? M >nume tabelaG?5>c"eieG?
;unde [cheie1T2 [cheie,T re)re/int c>?)urile ce identific Cnregistrrile cores)ondente Cn cele
dou ta4ele<.
Pentru exe?)lificare )e l>ng ta4ela 'tocuri ?ai consider? ta4ela Produse;(odP2 FenP2 FesP<.
)*%*CT 'roduse5Cod'2Den'2(m'2Cant2'ret FROM 'roduse2)tocuri
&D*R* 'roduse5Cod' M )tocuri5Cod'
;extrage toate tu)lele ;(odP2FenP2U?P2(ant2Pret< )entru care valoarea atri4utului (odP din
ta4ela Produse este egal cu valoarea atri4utului (odP din ta4ela 'tocuri <.
Hn li)sa clau/ei &D*R* se vor extrage toate co?4inaiile )osi4ile Cntre tu)lele celor dou ta4ele
;)rodusul carte/ian<.
Biecrei ta4ele i se )oate atri4ui un alias astfel Cnc>t fra/a de ?ai sus este echivalent cu fra/a:
)*%*CT ;5Cod'2Den'2(m'2Cant2'ret FROM 'roduse ;2)tocuri B &D*R* ;5Cod' M B5Cod'
Hn anu?ite situaii )oate fi necesar corelarea ;cu)larea< unei relaii ;ta4ele< cu ea Cnsi.
')re exe?)lu dac )resu)une? c Cn ta4ela 'tocuri unele )roduse )ot a)are de ?ai ?ulte ori cu
)reuri diferite i ne interesea/ )o/iiile cu )reul ?ini?2 for?ul? ur?toarea interogare:
)*%*CT ;5Cod'2;5Cant2;5'ret FROM )tocuri ;
&D*R* ;5'ret M +)*%*CT MIN+B5'ret, FROM )tocuri B &D*R* ;5Cod' M B5Cod',
Pentru re/olvarea unor astfel de )ro4le?e s%au utili/at instruciuni '1=1(T i?4ricate care vor fi
tratate Cn detaliu Cn lucrarea de la4orator nr.17.
Instuciuni SELECT im"icate
=i?4aDul )C% ofer )osi4ilitatea construirii unor interogri co?)lexe )rin includerea Cn
clau/a &D*R* a unei instruciuni )*%*CT2 a altei instruciuni )*%*CT ;nu?it su4%interogare
sau ainnerb< astfel:
)*%*CT >lista atribute? FROM >lista rela.ii?
&D*R* >condi.ie? +>sub1interogare?,
=a r>ndul ei su4%interogarea )oate conine Cn clau/a &D*R* o alt instruciune )*%*CT o4in>nd
astfel o interogare co?)lex constituit din instruciuni )*%*CT i?4ricate )e un nu?r oarecare
de nivele. #nstruciunea )*%*CT interioar generea/ valori )entru condiia de cutare a
9.
instruciunii )*%*CT exterioare care o conine ;nu?it i aouterb<. G su4%interogare )oate returna o
singur valoare2 sau )oate returna ?ai ?ulte valori.
Hn ce )rivete ordinea de evaluare a interogrilor )ot exista :
- su4%interogri si?)le % Cn care interogarea interioar este evaluat )ri?a2 inde)endent de
interogarea exterioar2 iar re/ultatul interogrii interioare este utili/at de interogarea exterioarL
- su4%interogri corelate % Cn care interogarea exterioar trans?ite re)etat c>te o valoare )entru
interogarea interioar2 care Cn 4a/a valorii )ri?ite2 )arcurge tu)lele relaiei i trans?ite
interogrii exterioare re/ultatul o4inut. Astfel de interogri reali/ea/ corelarea unei relaii cu
ea Cnsi i sunt cele ?ai )erfor?ante.
')re exe?)lu dac )resu)une? c Cn ta4ela 'tocuri unele )roduse )ot a)are de ?ai ?ulte ori cu
)reuri diferite i ne interesea/ )o/iiile cu )reul ?ini?2 for?ul? ur?toarea interogare:
)*%*CT ;5Cod'2;5Cant2;5'ret FROM )tocuri ;
&D*R* ;5'ret M +)*%*CT MIN+B5'ret, FROM )tocuri B &D*R* ;5Cod' M B5Cod',
'u4%interogri si?)le care returnea/ o singur valoare % )ot fi utili/ate Cn interogri
i?4ricate av>nd sintaxa:
)*%*CT >lista atribute? FROM >lista rela.ii?
&D*R* >atribut? M
>
?
>M
?M
XM
+>sub1interogare?,
@ORD*R BY >atribut@;)CBJD*)C2AB
1xe?)lu:
)*%*CT CodDep2Cod'2Cant FROM )tocuri
&D*R* Cant ? +)*%*CT ;#8+Cant, FROM )tocuri , ORD*R BY CodDep
;afiea/ )rodusele )entru care exist stocuri )este ?edie2 ordonate )e de)o/ite<.
'u4%interogari si?)le care returnea/a ?ai ?ulte valori )ot fi utili/ate Cn interogri
i?4ricat care utili/ea/ Cn clau/a &D*R* codiii care generea/ o ?uli?e de valori folosind unul
din )redicatele: +NOT,IN2 +NOT,;NY2 +NOT,;%%2 +NOT,*KI)T)5
1xe?)lu:
)*%*CT L FROM 'roduse &D*R* Cod' IN +)*%*CT Cod' FROM Facturi &D*R* Numar IN
+)*%*CT Numar FROM Beneiciari2Comenzi&D*R* Beneiciari5NumeMOIonescuO ;ND
Beneiciari5Cod=BeneiciarMComenzi5Cod=Beneiciar,,
Predicatul ;NY )oate fi utili/at Cn co?4inaie cu oricare din o)eratorii [2 T2 \2 [\2 T\2 O\ i
)er?ite verificarea dac valoarea unui atri4ut satisface condiia )reci/at )entru orice valoare din
lista re/ultat din su4interogare.
)*%*CT Cod' FROM )tocuri &D*R* Cant ? ;NY
+)*%*CT Cant FROM )tocuri &D*R* CodDep M YDEN,
Predicatul ;%% returnea/ toate tu)lele )entru care valorile atri4utului din clau/a &D*R*
sunt [2 T2 [\2 T\ dec>t toate valorile generate de interogarea interioar ;acest )redicat nu )oate fi
utili/at cu o)eratorul \ ce ar cores)unde ca/ului 4anal Cn care toate interogrile din list sunt egale<.
1xe?)lu:
98
)*%*CT L FROM )tocuri &D*R* Cant > ;%%
+)*%*CT Cant FROM )tocuri &D*R* CodDep M YDEN,
Predicatul *KI)T) verific dac )entru fiecare tu)l a relaiei exist tu)le care satisfac
condiia din interogarea interioar ;deci *KI)T) )er?ite s)ecificarea ?ai ?ultor atri4ute Cn
interogarea interioar<.
Astfel s)re exe?)lu instruciunea:
)*%*CT L FROM 'roduse ; &D*R* NOT *KI)T)
+)*%*CT L FROM )tocuri B &D*R* B5Cod'M;5CodCod',
va returna o list de )roduse care nu au nici o Cnregistrare Cn )tocuri.
!o"leme 4o4use
' se scrie co?en/ile 'E= )entru reali/area interogrilor de ?ai Dos.
Situa!ia stocurilor
Situa!ia ofertelor
Situa!ia v,nz#rilor
(ista produselor pentru care nu e.ist# oferte
(ista produselor pentru care nu s8au f#cut v,nz#ri 9n perioada :data;<data=>
C,mp (odFe) (od) Fen) U?) (ant Pret Valoare
Tabela 'tocuri 'tocuri Produse 'tocuri 'tocuri 'tocuri (antYPret
C,mp (odf Fenf Adresaf (od) Fen) U?) Pret Fatao
Tabela Burni/ori Burni/ori Burni/ori Produse Produse Gferte Gferte Gferte
C,mp (odc Fenc Adresac (od) Fen) U?) (ant Pret Valoare Fatav
Tabel
a
(lienti (lienti (lienti Produse Produse Van/ari Van/ari Van/ari (antYPre
t
Van/ari
C,mp (od) Fen)
Tabela Produse Produse
C,mp (od) Fen)
Tabela Produse Produse
96
$i"lio5a<ie3
1. Tho?as (onnoll*2 (arol*n 3egg2 Anne 'trachan Fata4ase '*ste?s A Practical
A))roach to Fesign2 #?)le?entation and &anage?ent 'econd 1dition ;trad. 1d. Teora: 3a/e de
date Proiectare . #?)le?entare . !estionare2 3uc. ,--1<
,. (onf.univ.dr. Virgil(hichernea2 'iste?ul A((1''2 1d.'N=V#2 vol.#2 3uc.,---
7. (onf.univ.dr. Virgil (hichernea2 lector univ.dr. (e/ar 3ote/atu2 'iste?ul
BoxPro21d.'N=V#2 vol.##2 3uc.,---
:. &irela Fanu4ianu2 3a/e de date % Bunda?ente teoretice si de/voltarea a)licatiilor Cn
Visual BoxPro J % 'uceava2 ,--7. % ,-5 ).2 #'30 567%-%-7,.6%,
F5 (. k. Fate2 An #ntroduction to Fata4ase '*ste?s2 9th 1dition2 )u4lished 4* Pearson
1ducation2 #nc. Adison Aesle* Uigher 1ducation2 ,--:.
8. Ro4ert Follinger%3a/e de date i gestiunea tran/aciilor2(luD0a)oca21559
6. BoxPro ,.8 )entru AindoIs. !hidul )rogra?atorului2 Traducere 1d. Teora2 1559
9. Foina Busaru2 Arhitectura 4a/elor de date &ediul 'E=2 Univ.')iru Uaret2 1d.Bundatiei
Ro?>nia de ?>ine2 3uc.,--,
5. Utili/are &icrosoft Access ,---2 'usan 'ales Uar@ins2 ^en Uansen i To? !erhart2 trad.
&arian Faniel &ere/eanu2 Aurelia 0icoleta &ere/eanu2 3ucureti2 1d. Teora2,---. % .,6 ).
1-. kones kohn Fata 3ases in theor* and )ractice" 1d. Tho?)son (o?)uter
Press2 U^ 1556
11. 0icolae &orariu2 Valeriu =u)u si Gvidiu UurDui2 3a/e de date2 1ditura Universitatii
'uceava2 ,--7. % 116 ).2 #'30 567%9,57%97%5
1,. #ntroduction to GRA(=1 'E=2 'E=Y Plus and P=J'E= (ourse 0otes2 !lenn &aslen2
Pu4lished 4* Gracle (or)oration U^ =td. 155,
17. Totul des)re 'E= #nterogarea 4a/elor de date2 (orina Pascu2 Adrian Pascu2
1d. Tehnic 3uc. 155:
1:. 'tefan%!heorghe Pentiuc2 kean%&ichel Futhilleul2 1le?ente de teoria si )roiectarea
4a/elor de date : note de curs2 'uceava2 Universitatea l'tefan cel &arel 'uceava2 155.217, ).
1.. ^hoshafian 'etrag G4Dect Griented Fata4asses"2 )u4. kohn Ahile*2 55:2 U^
18. Access % )entru )rogra?atori J =eon T>?4ulea. % (luD%0a)oca : Pro?edia Plus2 co).
1558. % ,56 ).
16. A)licaii de gestiune : Access i Visual 3asic J &ioara Udric. % 3ucureti : 0aional2
1559. % 156 ).
19. &icrosoft Visual BoxPro 8.-2 !hidul )rogra?atorului2 1d.Teora2 ,---.
99

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