Sunteți pe pagina 1din 47

Universitatea din Craiova

Facultatea de Automatica, Calculatoare si Electronica


Colegiul Tehnica de Calcul
PROIECT DE ABSO!IRE
Indrumator stiinti"ic,
S#l# dr# ing# Catalin Cer$ulescu
A$solvent,
Po%a Ionica &arian
Craiova ' ())*
Tema %roiect
+estiune si %re,entare on'line a %rogramelor
cinematogra"elor din Romania
Cu%rins
Ca%#- Pre,entare "unctiuni
Ca%#( .otiuni "undamentale de $a,e de date
Ca%#/ im$a0ul S1
Ca%#* Active Server %ages
4.1 Pagini ASP
4.2 Accesarea bazelor de date
4.3 Obiectul Response
4.4 Obiectul Request
Ca%#2 Descriere a%licatie
5.1 Structura bazei de date
5.2 Legaturi intre tabele
5.3 Interata cu utilizatorul
5.4 !alidari asupra datelor
5.5 "e#nici de progra$are utilizate in partea de ad$inistrare
5.5.1 %one&iunea la baza de date
5.5.2 Inserarea si actualizarea datelor
5.5.3 Stergerea datelor
5.' "e#nici de progra$are utilizate in partea de client
5.'.1 Pagina Acasa
5.'.2 Pagina In cine$atograe
5.'.3 Pagina cu inor$atii detaliate despre un il$
5.'.4 Pagina cu inor$atii detaliate despre un actor
5.'.5 Pagina (il$e
5.'.' Pagina Actori
5.'.) Pagina Ar#i*a il$e
Ca%#3 Conclu,ii
Bi$liogra"ie
isting sursa
Ca%#- Pre,entare "unctiuni
Aplicatia care ace obiectul acestui proiect se intituleaza +estiune si
%re,entare on'line a %rogramelor cinematogra"elor din Romania si
reprezinta un site +eb care aiseaza inor$atia e&istenta intr,o baza de date
-S Access. %a ur$are este un site dina$ic. sc#i$barea inor$atiei din baza
de date conducind la sc#i$barea auto$ata a inor$atiei care se aiseaza pe
Internet.
%a solutie pentru realizarea acestui site a$ ales /"-L 0/1per"e&t
-ar2,up Language3 si ASP 0Acti*e Ser*er Pages3.
Site,ul cuprinde doua parti distincte. Pri$a parte este destinata
consultarii de catre orice persoana doritoare de a *edea un il$ la cine$a.
(acilitatile oerite de aceasta pri$a parte a site,ului realizat de $ine
sunt grupate sub ur$atoarele titluri 4
1. Acasa 5 este pagina introducti*a. in care *izitatorul este inor$at
asupra a doua lucruri4 il$ele noi aparute in cine$atograe in
sapta$ina curenta. precu$ si il$ele reco$andate. Prin asta a$
inteles il$ele care prin calitatea lor sunt reco$andate spre
*izionare. Pentru iecare il$ apare titlul acestuia. aisul si date
legate de subiect. Pe iecare titlu este a$plasata o #iperlegatura care
conduce la pagina cu inor$atiile detaliate despre il$.
2. In cine$atograe , aiseaza datele ce incadreaza sapta$ina curenta
si o lista drop,do6n din care trebuie ales orasul care intereseaza. In
acest $o$ent se aiseaza iecare cine$atogra din orasul respecti*
cu adresa s teleonul sau. Apoi. pentru iecare cine$atogra in parte
apare lista il$elor care ruleaza. precu$ si cu zilele si orele de
*izionare. Si aici a*e$ #iperlegatura pe titlul il$ului pentru a
$erge in pagina cu detalii.
3. In *iitor 5 aceasta pagina este ase$anatoare cu cea anterioara.
nu$ai ca aiseaza inor$atii despre il$ele progra$ate sa ruleze in
cine$atograe in etapa de ti$p *iitoare
4. (il$e 5 aiseaza titlurile il$elor care ruleaza in tara in sapta$ina
curenta.
5. Actori 5 aiseaza. in ordine alabetica. nu$ele actorilor care
igureaza in baza de date. 7u$ele actorului este o #iperlegatura care
daca este ur$ata conduce la aisarea in partea inerioara a paginii a
inor$atiilor detaliate despre actorul ales.
'. Ar#i*a il$e 5 per$ite *izualizarea titlurilor il$elor care sunt in
baza de date pentru ca au rulat in trecut intr,unul din
cine$atograele e&istente in baza de date. Aceasta ar#i*a este
$entinuta. pentru ca un il$ poate sa ruleze din nou. peste un
anu$e ti$p. ie in acelasi cine$atogra. ie in altul.
8oresc sa $entionez ca interata graica este placuta. cu un undal si
butoane adec*ate te$ei.
%ea de a doua parte a site,ului este pusa nu$ai la dispozitia celor care
au drepturi sa ad$inistreze baza de date -S Access. Acesti utilizatori trebuie
sa se identiice printr,un nu$e de utilizator si parola. In partea de
ad$inistrare. e&ista ur$atoarele #iperlegaturi4
1. %ine$atograe
2. (il$e
3. Actori
4. Sapta$ina
5. Progra$
Aceste titluri corespund in general tabelelor din baza de date a caror
inor$atie trebuie actualizata. (iecare din aceste optiuni per$ite gestionarea
inor$atiei corespunzatoare. prin adaugare. $odiicare sau stergere de
inregistrari.
In pagina (il$e. in aara de posibilitatea de adaugare. $odiicare si
stergere e&ista doua #iperlegaturi nu$ite 8istributie si I$agini care per$it
gestionarea inor$atiilor corespunzatoare pentru iecare il$ in parte.
In pagina %ine$atograe. utilizatorul cu drept de ad$inistrare poate sa
gestioneze inor$atia despre acestea4 sa adauge. sa $odiice sau sa stearga
inregistrari.
In pagina (il$e. ad$inistratorul poate sa $odiice inor$tia legata de
acestea. plus inor$atia legata de i$aginile din il$e si distributia acestora.
8e e&e$plu.in cazul in care se ad$inistreaza inor$atia legata de
distributia il$elor. nu$ele actrilor se alege dintr,o lista drop,do6n. $unca
acestuia iind $ult si$pliicata. Aceasta te#nica este utilizata si in alte parti
ale site,ului de ad$inistrare. Astel. in cazul inor$atiilor despre
cine$atograe. se alege orasul din care apartine. la adagarea progra$ului de
rulare al unui il$ se alege sapata$ina si apoi titlul il$ului tot prin
inter$ediul unor liste drop,do6n.
Lucrurile se produc ase$anator in cazul celorlalte #iperlegaturi.
8oresc sa e*identiez ca in aceasta sectiune a$ acordat atentie speciala
*alidarii datelor care se introduc sau se $odiica in tabele. pentru a pastra
consistenta inor$atiei. pentru a e*ita iesirea utilizatorului din pagina din
cauza unei erori.
Ca%#( .otiuni "undamentale de $a,e de date
Entitate,rela4ie,atri$ut
Se nu$e9te entitate orice obiect.eno$en sau concept care poate i
distins prin *alorile caracteristicilor sale de alte obiecte.eno$ene sau
concepte ase$:n:toare.
Se nu$e9te atribut o caracteristic: speciic: unei entit:;i.
<n atribut se caracterizeaz: prin 4nu$e.se$antic:.structur:.tipuldatelor
9i do$eniul de deini;ie.
Prin tipul datelor =n;elege$ structura datei.$ul;i$ea
*alorilor.opera;iile ad$ise si $odul de tratare a erorilor speciice.
Semantica =nsea$n: se$niica;ia atributului =n cadrul entit:;ii.>ntr,o
colec;ie pot s: apar: di*erse atribute cu acela9i nu$e dar plasate in entit:;i
dierite.%#iar dac: au acela9i nu$e atributele pot s: aib: se$niica;ii dierite.
Domeniul este o no;iune speciic: bazelor de date 9i puternic legat: de
se$antica acestora.%unoa9terea se$anticii atributelor 9i a do$eniilor
speciice este una din cerin;ele de baz: ale proiect:rii unei baze de date.
8in punct de *edere al se$anticii distinge$ 4
1. Atribute identificator,ale c:rui *alori pot identiica =n $od unic o
anu$ita entitate.
2. Atribute descriptor,ale carui *alori descriu o anu$it: proprietate a
entit:;ii.
3. >n ase$enea situa;ii o entitate poate s: nu aib: c#eie pri$ar:
natural:.>n acest caz proiectantul bazei de date poate decide
introducerea unei c#ei pri$are artiiciale.
Din punct de vedere al structurii putem distinge :
1. Atribute atomice din a c:ror *aloare nu poate ii eli$inat: nici o
co$ponent: :r: a aecta se$antica atribitului.
2. Atribute compuse a c:ror *aloare este dat: de reuniunea *alorilor unor
atribute ato$ice.
Din punct de vedere al numrului de valori pe care-l poate lua la un
moment dat un atribut pentru o anumit entitate distingem.
1. Atribute cu valoare unic care accept: la un $o$ent dat o singur:
*aloare pentru iecare entitate.
2. Atribute multivaloare care accept: la un $o$ent dat un set de *alori
pentru aceea9i entitate.
Din punct de vedere al nivelului de structurare al unui atribut
distingem :
1. Atribute slab structurate 5sunt caracteristice aplica;iilor $ulti$edia.
2. Atribute puternic structurate,sunt atribute care au o structur: riguros
deinit:.
>ntre entit:;i se stabilesc leg:turi.Leg:tura =ntre clase de entit:;i pune =n
coresponden;: entit:;iile ce particip: la realizarea leg:turii a dou: sau $ai
$ulte clase de entit:;i reprezint: o sub$ul;i$e a produsului cartezian al
entit:;iilor.
Caracteristici generale ale legturilor:
1. Orice leg:tur: are un nu$e
2. Orice leg:tur: are o se$antic: riguros deinit:
3. O leg:tur: este bidirec;ional:
4. Pot i deinite leg:turi =ntre entit:;ile aceleia9i clase de entit:;i
5. >ntre acelea9i clase de entit:;i pot i deinite $ai $ulte leg:turi cu
se$niica;ii dierite
'. Pot i deinite leg:turi peste $ai $ult de dou: clase de entit:;i
). Leg:turile pot a*ea atribute proprii ca 9i entit:;iile
Indierent de se$antica lor leg:turile prezint: c?te*a propriet:;i deosebit
de i$portante a c:ror cunoa9tere este esen;ial: pentru =n;elegerea si
i$ple$entarea colec;iilor de date.
1. Gradul legturii,indic: nu$:rul de clase de entit:;i care particip: la
realizarea leg:turii tip .
2. ndicator de participare,este un indicator care speciic: dac: pot e&ista
entit:;i ale unei clase de entit:;i care s: nu participe obligatoriu la
realizarea leg:turi tip analizate.
3. ndicator de conectivitate,indic: nu$:rul de entit:;i ale unei clase care
pot i puse =n coresponden;: cu entit:;i ce particip: la realizarea unei
anu$ite leg:turi.
!a"e de date
Se nu$e9te ba" de date o colec;ie de date conectate logic
e&#austi*:.neredundant: 9i care suport: independen;a aplica;iilor =n raport cu
structura datelor.
Prin structura ba"ei de date se $aterializeaz: de apt inor$a;ia con;inut:
de date .Structura datelor nu este unic: .Prin duplicarea datelor =n;elege$ c:
aceleea9i date sunt reprezentate =n baza de date =n aceea9i or$: sau =n or$e
apropriate.
Cone#iunea logic a datelor presupune c: =n baza de date sunt introduse
nu$ai date speciice unui anu$it do$eniu iar =ntre ele pot i puse =n e*iden;:
leg:turi cu o se$antic: bine deter$inat:.
$#%austivitatea datelor se reer: la cerin;a i$pus: de precizia
inor$a;iilor 9i anu$e c: pentru a ob;ine inor$a;ii c?t $ai corecte =ntr,un
anu$it do$eniu respecti*.
Prin cerere *o$ =n;elege o solicitare abstract: siste$ului inor$atic sub
or$a unor co$enzi =ntr,un li$ba@ de progra$are =n scopul ob;ineri unui
anu$it rezultat cu a@utorul unor prelucr:ri ele$entare asupra datelor p:strate
=n baza de date.
Prin aplica&ie se =n;elege un grup de cereri concatenate se$antic 9i care
solicit: apro&i$ari* acelea9i date pentru ob;inerea rezultatelor. >n concluzie
e&ist: un nu$:r $are de ele$ente ale bazei de date a c:ror $odiicare nu
trebuie s: aecteze aplica;iile de@a i$ple$entate. Printre acestea pute$
a$inti4
1. utilizarea unor tipuri de dat: dierite pentru *alorile aceluia9i atribut
2. or$atul de reprezentare al datei calendaristice poate *aria oarte
puternic =n unc;ie de aplica;ie.de preerin;ele beneiciarului de
tranzac;ie.
3. anu$ite date pot i *:zute distinct de c:tre o aplica;ie 9i concatenate de
c:tre alt: aplicatie.
4. di*erse apilica;ii utilizeaz: iecare doar o parte a con;inutului bazei de
date.
5. dac: la un $o$ent dat se #ot:r:9te e&tinderea bazei de date prin
ad:ugarea de noi categori de inor$a;ii .*ec#ile aplica;ii care nu
utilizeaz: aceste date nu trebuie s: ie aectate.
'. a*?nd =n *edere pre;ul de cost $are al i$ple$ent:ri unei baze de date
9i a aplica;iilor peste aceasta se poate decide i$ple$entarea bazei de
date =n etape.
). $odiic:rile =n structura siste$ului inor$atic pri ac#izi;ia de
ec#ipa$ente de calcul noi prin $odiicarea tipului suportului e&tern de
inor$a;ie.prin redistribuirea i9ierelor de date nu trbuie s: aecteze
progra$ele aplicati*e.
A. un progra$ aplicati* poate i utilizat =n conte&te dierite peste baze de
date cu structuri de date identice dar i$ple$entate pe siste$e de calcul
dierite.
Sistemul de gestiune a ba"elor de date reprezint: un pac#et de progra$$e
care per$it crearea. utilizarea si eli$inarea obiectelor ce co$pun baza de date
=n scopul cre9teri randa$entului global al utiliz:rii bazelor de date si a*?nd ca
principal obiecti* reducerea dependen;ei aplica;iilor =n raport cu structura
datelor. Principala noutate introdus: de SBC8 a ost separarea descrierii
datelor de progra$ul aplicati*. 8escrierea datelor se ace =n $od unitar pentru
toate aplica;iile cu a@utorul SBC8. SBC8,ul oer: $ecanis$e puternice de
acces la date :r: s: necesite cuno9tin;e a*ansate pri*ind structura datelor 9i
siste$ul de operare.
Introducerea SBC8,ului a per$is crearea unei ar#itecturi pe 3 ni*ele a
siste$ului inor$atic4
'ivelul logic corespunde $odului =n care iecare utilizator *ede con;inutul
bazei de date.
'ivelul conceptual corespunde structurii =ntregii baze de date.-odelul
conceptual este o descriere a continutului bazei de date independent: at?t de
aplica;iile propriuzise c?t 9i de $odelul de i$ple$entare al bazei de date.
'ivelul intern se reer: la $odul de i$ple$entare al bazei de date.
-odelul intern con;ine descrierea structurii de date i$ple$entate.
descrierea i9ierelor a te#nicilor de acces la date. lista utilizatorilor. drepturile
lor de acces.
(odelul rela&ional este un $odel logig al bazei de date care sa i$pus
datorit: naturale;ii sale 9i si$plit:;ii =n =n;elegerea 9i $anipularea structurilor
de date. Rrezentarea unei baze de date sub or$: de rela;ii se nu$e9te $odel
rela;ional al bazei de date.
O rela;ie este or$at: dintr,un tabel bidi$ensional =n care coloanele
corespund atributelor iar iecare linie corespunde unei entit:;i.
(iecare rela;ie se identiic: printr,un nu$e unic =n cadrul unei baze de
date.
(iecare atribut are un nu$e unic 9i trebuie s: sugereze se$niica;ia
acestuia.
O linie a rela;iei se nu$e9te tuplu al rela;iei .Prin rela;ie $aterializ:$ o
clas: de entit:;i =n care iecare tuplu reprezint: o entitate.
C5EI
7o;iunea de c#eie deri*: din conceptul deter$inant .
Se nu$e9te determinant orice atribut si$plu sau co$pus ale c:rui *alori
identiic: =n $od unic *alorile altor atribute.
Se nu$e9te superc%eie orice atribut si$plu sau co$pus care identiic: =n
$od unic un tuplu.
D&ist: o superc#eie care apare =n orice rela;ie nu$it: c#eie tri*ial: 9i
anu$e o superc#eie or$at: din toate atributele rela;iei.
C%eie candidat :
Se nu$e9te c#eie candidat o superc#eie $ini$al: adic: o superc#eie din
care =ndep:rt?nd cel pu;in un atribut se pierde caracterul de deter$inant.
Superc#eile si c#eile candidat rezult: =n $od natural din se$antica datelor.
C%eie primar :
%#eia pri$ar: este o c#eie candidat aleas: de c:tre proiectantul bazei de
date pentru identiicarea tuplurilor intr,o rela;ie. Speciicarea c#eii pri$are
este obligatorie =n orice docu$enta;ie pri*ind baza de date. Alegerea c#eii
pri$are se poate ace pe baza unei analize prounde a se$niica;iei datelor 9i
a $odului =n care acestea sunt utilizate =n di*erse aplica;ii sau pot i i&ate
arbitrar dintre c#eile candidat. >n cazul in care nu e&ist: nici o c#eie candidat
sau c#eile candidat naturale au un nu$:r prea $are de atribute proiectantul
poate decide introducerea unor c#ei pri$are artiiciale generate de c:tre
SBC8.
C%eie alternant : este o c#eie candidat care nu a ost aleas: pentru postul
de c#eie pri$ar:.
C%eie secundar :
Orice atribut sau grup de atribute prin ale c:ror *alori se identiic: o
$ul;i$e de tupluri dintr,o rela;ie.
(ie o rela;ie a*?nd sc#e$a r0a1.a2.E.an3.unde a1 este c#eie pri$ar: a
rela;iei. Se nu$e9te do$eniu pri$ar al rela;iei do$eniul corespunz:tor c#eii
pri$are. (ie o alt: rela;ie s0b1.b2.E.bn3.unde b1 este deinit peste acela9i
do$eniu pri$ar din rela;ia r.>n acest caz se spune c: b1 este c#eie e&tern:
peste deinit: peste c#eia pri$ar: din rela;ia r.
C%eia e#tern reprezint: un $ecanis$ unda$ental pentru $aterializarea
leg:turi =ntre rela;iile r 9i s. %#eile e&terne pot i deinite =n practic: peste c#ei
candidat =n aara c#eii pri$are.
Reguli de integritate
Regulile de integritate a datelor dintr,o baz: de date rela;ional:
reprezint: restric;ii i$puse datelor cu scopul de a eli$ina redundan;a
datelor.inconsisten: a datelor 9i erori de actualizare a datelor.
D&ist: $ulte tipuri de integrit:;i 9i anu$e 4
1. ntegritatea domeniului,aceast: restric;ie presupune deinirea
do$eniului unui atribut astel =nc?t s: reprezinte eecti* *alorile
posibile ale unui atribut.
2. ntegritatea c%eilor,prin c#eie *o$ =n;elege toate c#eile candidat puse
=n e*iden;: =ntr,o rela;ie.
3. ntegritatea entit&ii,prin deini;ie c#eia pri$ar: trbuie s: identiice =n
$od unic un tuplu al unei rela;ii care =n general este $aterializarea unei
entit:;i. Pentru ca s:,9i poat: realiza rolul de identiicator c#eia pri$ar:
nu poate a*ea *alori nule.
4. ntegritatea referirii,aceast: restric;ie de integritate are ca scop s:
eli$ine reeririle =n gol. adic: c#eia e&tern: nu are *oie s: se reere la
un tuplu care nu e&ist:. Restric;ia integrit:;ii reeririi i$pune ca la un
$o$ent dat *alorile c#eii e&terne ie s: ie nule. ie s: se ale printre
*alorile de@a =nregistrate pentru c#eia pri$ar: peste care este deinit:
c#eia e&tern:.
5. )estric&ii de utili"ator,=n unele situa;ii utilizatorul poate i$pune 9i alte
restric;ii dec?t cele i$puse de regulile de integritate discutate anterior 4
,unicitatea altor atribute dec:t c#eia pri$ar:
,*alori nule
,di*erse *alid:ri
O%eratori ai alge$rei rela4ionale
Operatorii algebrei rela;ionale pot i =$p:r;i =n dou: grupe4
1. Operatori clasici peste $ul;i$i
2. Operatori rela;ionali speciici
Se spune c: rela;iile r1 9i r2 sunt co$patibile cu reuniunea dac: cele 2
rela;ii au aceea9i paritate 9i atributele care ocup: aceea9i paritate sunt deinite
peste acela9i do$eniu c#iar dac: au nu$e dierite.
)euniunea 4(ie r1 9i r2 dou: rela;ii co$patibile cu reuniunea .Se
nu$e9te reuniune rela;ia r care con;ine toate tuplurile celor 2 rela;ii ini;iale
:r: duplicate.
ntersec&ia 4(ie r1 9i r2 dou: rela;ii co$patibile cu reuniunea.Se
nu$e9te intersec;ie rela;ia r care con;ine toate tuplurile co$une lui r1 9i r2.
Diferen&a 4(ie r1 9i r2 dou: rela;ii co$patibile cu reuniunea.Se nu$e9te
dieren;: rela;ia r care con;ine nu$ai tuplurile din r1 care nu apar =n r2.
*rodusul carte"ian 4(ie r1 9i r2 dou: rela;ii oarecare.Se nu$e9te
produs cartezian rela;ia r op;inut: prin concatenarea iec:rui tuplu din r1 cu
iecare tuplu din r2.
Operatori rela;ionali speciici 4
Selec&ia,(ie o rela;ie r 9i o e&presie relational: arit$etic: nu$it:
iltru.Se nu$e9te selec;ie o rela;ie or$at: din toate tuplurile rela;iei r pentru
care atributele iau *alori care =nlocuite =n e&presia ac ca aceasta s: aib:
*aloarea ade*:rat: true.
*roiec&ia,(ie o rela;ie r 9i ai1.ai2.E.ain. un set de atribute ale acestei
rela;ii.Se nu$e9te proiec;ie o rela;ie op;inut: din rela;ia r care con;ine nu$ai
atributele speciicate.
Ti%uri de lim$a0e utili,ate 6n domeniul $a,elor de date
1. +imba,e de descriere a ba"ei de date-+D!D.-per$it descrierea
rela;iilor atributelor 9i a unor restric;ii de integritate.a unor *ederi
asupra bazelor de date a unor utilizatori 9i apri*ilegiilor acordate
acestora.
2. +imba,e de manipularea ba"elor de date-+(D!.-acestea cuprind
co$enzi care per$it 4
,introducerea de noi date =n baza de date
,$odiicare *alorilor de@a =nscrise =n baza de date
,eli$inarea unor tupluri ale unei rela;ii
3. +imba,e de interogare,au ca scop posibilitatea or$ul:ri unor cereri
de c:utare a inor$a;iilor =n baza de date.
4. +imba,e pentru generarea rapoartelor,sunt li$ba@e care per$it o
or$atare soisticat: a datelor care s: prezinte inor$a;ia intr,o or$:
adec*at: proble$ei rezol*ate.
.ormali,area
Dste un proces interati* 9i re*ersibil prin care se =nlocuie9te o colec;ie
dat: de rela;ii prin colec;ii succesi*e =n care rela;iile au o structur: din ce =n ce
$ai si$pl: 9i $ai regulat:.
Obiecti*ele nor$aliz:rii sunt 4
1.S: per$it: reprezentarea oric:rei rela;ii =n baza de date .
2.S: op;in: algorit$ii de c:utare puternici baza;i pe o colec;ie de operatori
rela;ionali .
3.S: eli$ine din rela;ii ano$aliile de inser;ie .$odiicare 9i 9tergere.
4.S: reduc: necesitatea restructur:rii rela;iilor atunci c:nd se introduce un
nou tip de date sau se $odiic: ipotezele de lucru.
5.S: ac: colec;ia de rela;ii i$un: =n raport cu cererile aleatoare a c:ror
se$antic: se $odiic: =n ti$p.
Pot i puse =n e*iden;: cinci or$e de nor$alizare ce or$eaz: o structur:
riguros ierar#izat: care *or i notate cu (71,(75.
/orma normal 1-/'1.
O relatie este =n (71 dac: iecare atribut al rela;iei are un do$eniu de
*alori ato$ice.(71 este cea $ai slab: or$: nor$al:.>n general rela;iile =n
aceast: or$: prezint: nu$eroase ano$alii la inser;ie.$odiicare 9i eli$inare.
acestea iind eli$inate de celelalte or$e nor$ale.
/orma normal 2-/'2.
(ie F $ul;i$ea tuturor atributelor rela;iei r0a1.a2.E.an3.care nu
particip: la or$area *reunei c#ei =n r. Se spune c: rela;ia r este =n (72 dac:
9i nu$ai dac: iecare atribut din F este co$plet dependent unc;ional de
oricare din c#eile lui r.<n atribut este atribut prim dac: ace parte din cel
pu;in o c#eie a rela;iei r.<n atribut este atribut nonprim dac: nu ace parte
din cel pu;in o c#eie a rela;iei r.O rela;ie este =n (72 dac: 9i nu$ai dac: orice
atribut nonpri$ din r este co$plet dependent unc;ional de toate c#eile din r.
*roprietate :
8ac: o rela;ie nu este =n (72.e&ist: o desco$punere a lui r =ntr,un set
de proiec;ii.iecare =n (72. 8esco$punerea se poate realiza =n a9a el =nc?t
aplic?nd @oncea natural: =ntre proiec;ii se op;ine con;inutul inor$a;ional al
lui r ar: pierdere de inor$a;ie.
/orma normal 3-/'3.
O rela;ie este =n (73 dac: 9i nu$ai dac: nici unul din atributele sale
nonpri$e nu este dependent tranziti* de o c#eie a rela;iei r.
*roprietti :
1.8ac: o rela;ie se al: =n (73 .ea este obligatoriu =n (72.
2.D&ist: rela;ii =n (72 care nu se al: =n (73.
3.8ac: o rela;ie r nu este =n (73.e&ist: o deco$pozi;ie a lui r intr,un set de
proiec;ii.toate =n (73. Aceast: deco$pozi;ie este astel realizat: =nc?t
aplic?nd @onc;iunea natural: =ntre proiec;iile op;inute se reace rela;ia ini;ial:
:r: pierdere de inor$a;ii.
/orma normal !o0ce-Codd-/'!C.
Rela;ia r0a1.a2.E.an3 este =n (7C% dac: 9i nu$ai dac: e&isten;a unei
dependen;e unc;ionale netri*ial: F,G .unde F 9i G sunt seturi de atribute ale
lui r i$plic: e&isten;a dependen;elor unc;ionale F,a1.pentru iH1.2.E.n.
Aceast: deini;ie poate i reor$ulat: utiliz?nd ter$enul deter$inant.
Se nu$a9te deter$inant orice atribut si$plu sau co$pus care i$plic:
unc;ional alte atribute.
O rela;ie este =n (7C% dac: 9i nu$ai dac: orice deter$inant al rela;iei
este c#eie candidat.
*ropriet&i :
1.8ac: o rela;ie este =n (7C%.ea este obligatoriu in (73.
2.D&ist: rela;ii =n (73 care nu sunt =n (7C%.
3.8ac: o rela;ie nu este =n (7C%.atunci aceast: rela;ie poate i desco$pus:
=ntr,un set de proiec;ii (7C% astel =nc?t con;inutul rela;iei ini;iale s: poat: i
re:cut :r: pierdere de inor$a;ie prin @onc;iunea natural: a proiec;iilor.
Procesul de nor$alizare poate i rezu$at astel 4
.-#Se transor$: tabelul ini;ial =ntr,unul sau $ai $ulte tabele cu *alori
ato$ice.
.(#8in rela;iile de la pasul precedent se eli$in: toate dependen;ele
unc;ionale par;iale op;in?nd rela;ii (72.
./#8in rela;iile (72 se eli$in: toate dependen;ele unc;ionale tranziti*e de
atribute c#eie.Se op;in rela;ii (73.
.*.Se aleg proiec;iile rela;iilor (73 care eli$in: acele dependen;e
unc;ionale =n care deter$inantul nu este c#eie candidat 9i se op;in rela;ii
(7C%.
.2#Se aduc rela;iile (7C% =n (74.
.3#Se aleg proiec;iile rela;iilor (74 care eli$in: dependen;ele @onc;iune care
nu sunt i$plicate prin c#ei candidat .Rezult: rela;ii (75.
Ca%#/ im$a0ul S1
S1 a ost conceput ca un li$ba@ standard de descriere a datelor si
acces la inor$atiile din baze de date. dez*oltindu,se ca o ade*arata
te#nologie dedicata ar#itecturilor clientIser*er.
<tilizat initial de catre ir$a IC- pentru produsul 8C2. li$ba@ul de
interogare a bazelor de date relationale S1 0Structured 1uer7 anguage3
a de*enit la $i@locul deceniului trecut un standard in do$eniu. 8e atunci si
pina in prezent au ost dez*oltate $ai $ulte *ersiuni ale standardului SJL.
trei dintre ele apartinind Institutului 7ational A$erican de Standarde
0 A7SI 3. celelalte iind concepute de ir$e de prestigiu ca IC-. -icrosot.
Corland. 8in pacate. lipsa unui standard unic SJL are drept consecinte
cresterea costurilor progra$elor de gestiune a bazelor de date si ingreuneaza
intretinerea ar#itecturilor clientIser*er. Pri$ul standard SJL a ost creat in
anul 1KAK de catre A7SI. iind cunoscut sub nu$ele de A7SI,SJL LAK si a
ost re*izuit in 1KK2 sub noua denu$ire A7SI,SJL LK2. Prolierarea intre
ti$p a dieritelor i$ple$entari ale li$ba@ului SJL. a deter$inat or$area
consortiului SAB. cu scopul de a concepe un set de standarde SJL. care sa
aiba la baza un subset al standardului A7SI,SJL LAK si in plus sa rezol*e
proble$ele legate de i$ple$entarea acestora in ar#itecturi clientIser*er cu$
ar i conecti*itatea si interetele cu utilizatorul ale progra$elor.
In anul 1KK2. ir$a -icrosot. in calitate de $e$bru SAB a lansat pe
piata produsul O8C% 0 Open 8atabase %onecti*it1 3. un standard API,SJL
ce are la baza un proiect de standard si deineste o interata de progra$are a
aplicatiilor 0 API 3 pentru accesul la baze de date.
Interata de progra$are cunoscuta in do$eniu sub initialele API. oera
o cale de co$unicare intre progra$e si bazele de date prin apeluri de unctii
care substituie instructiunile SJL. Astel. standardele API se bazeaza pe
conecti*itate. precu$ si sc#i$bul de date si $esa@e SJL.
SJL este un li$ba@ co$plet pentru baze de date. cuprinzind co$enzi
pentru deinirea datelor. actualizare si interogare. 8eci. este atit un li$ba@
pentru deinirea datelor 088L3. cit si pentru $anipularea datelor 08-L3. In
plus. are acilitati pentru deinirea *iziunilor. pentru crearea si stergerea
indecsilor si pentru incapsularea co$enzilor SJL in li$ba@e de progra$are ca
% sau Pascal.
%o$enzile SJL pentru deinirea datelor sint CREATE. ATER si
DROP.
%o$enzile SJL pentru $odiicarea datelor sint I.SERT. DEETE si
UPDATE.
SJL are o singura co$anda pentru regasirea datelor din bazele de date.
SEECT .
A*ind in *edere ca in ASP. accesul la bazele de date de tip Access se
realizeaza prin inter$ediul li$ba@ului SJL. *oi prezenta in continuare.
sinta&a co$enzilor SJL in -icrosot Access.
Comanda SEECT
Per$ite returnarea unui set de inregistrari din baza de date. Are
ur$atoarea sinta&a4
SEECT 8%redicate9 : ; < ta$le#; < 8ta$le#9"ield- 8AS alias-9
8,ta$le#9"ield( 8AS alias(9 8, ###99=
FRO& ta$lee>%ression 8, ###9 8I. e>ternaldata$ase9
8?5ERE### 9
8+ROUP B@### 9
8ORDER B@### 9
%o$anda SDLD%" are ur$atoarele parti4
, Predicate 5 poate i unul dintre ur$atoarele predicate4 ALL.
8IS"I7%". 8IS"I7%"RO+. or "OP. care se utilizeaza pentru a
restrictiona nu$arul de inregistrari returnate. 0 i$plicit este ALL3.
, M , speciica selectarea tuturor ci$purilor din tabela sau tabelelor
selectate.
, table 5 speciica nu$ele tabelei continind ci$purile din care se
selecteaza datele
, ield1. ield2 5 reprezinta nu$ele ci$purilor din care dori$ regasirea
datelor.
, alias1. alias2 , reprezinta nu$ele utilizate ca si titluri de coloane
in locul nu$elor coloanelor din tabela
, tablee&pression 5 reprezinta nu$ele tabelei sau tabelelor din care se
regases datele
, e&ternaldatabase 5 reprezinta nu$ele bazei de date e&terne. daca
tabelele nu sint in cea curenta
Obser*atii4
Pentru a e&ecuta aceasta operatie. $otorul de baze de date -icrosot
Net cauta tabela sau tabelele speciicate. e&trage coloanele alese. selecteaza
rindurile care satisac criteriul si sorteaza sau grupeaza rindurile rezultate in
ordinea speciicata.
%o$anda SDLD%" nu $odiica datele din baza de date.
8aca nu$ele unui ci$p apare in $ai $ulte tabele din clauza (RO-. el
trebuie precedat de nu$ele tabelei si operatorul punct 0.3.
Clau,a ?5ERE speciica inregistrarile din tabelele ce apar in clauza
(RO- care *or i aectate de co$anda SDLD%". 7u$ai acele inregistari care
satisac criteriul din aceasta clauza *or i incluse in interogarea rezultat.
Obser*atii 4
8aca nu se speciica clauza +/DRD *or i returnate toate rindurile din
tabele. 8aca in interogare se speciica $ai $ult de o tabela si nu speciica
clauza +/DRD sau NOI7. se eectueaza produsul cartezian al tabelelor.
operatie consu$atoare de ti$p.
Clau,a ORDER B@ per$ite sortarea inregistrarilor dupa *alorile din
ci$purile speciicate. ascendent sau descendent.
Sinta&a acestei clauze este4
8ORDER B@ "ield- 8ASC < DESC 98, "ield( 8ASC < DESC 998, ###999
Obser*atii 4
%lauza este optionala. Sortarea i$plicita este ascendenta. altel trebuie
speciicat 8DS%. In aceasta clauza nu pot apare ci$puri de tip OLD sau
-e$o.
Clau,a +ROUP B@ co$bina inregistrarile cu *alori identice din lista
de ci$puri speciicate. intr,o singura inregistrare.8aca in co$anda SDLD%"
se speciica una dintre unctiile agregat 0 Su$. %ount. -a& 3. atunci pentru
iecare astel de inregistrare se creaza apoi o *aloare agregat.
%lauza are ur$atoarea sinta&a4
8+ROUP B@ grou%"ieldlist9
, groupieldlist 5 reprezinta nu$ele a cel $ult 1O ci$puri utilizate
pentru gruparea inregistrarilor. Ordinea acestor ci$puri in lista
deter$ina ni*elele de grupare de la cel $ai inalt pina la cel $ai de @os
Obser*atii4
%lauza este optionala. !alorile agregat sint o$ise daca in co$anda SJL
nu se speciica nici o unctie agregat. 7u se poate ace grupare dupa ci$puri
de tip Ole sau -e$o.
Aonctiunea interna B I..ER AOI. C
Se speciica cu ur$atoare sinta&a4
FRO& ta$le- I..ER AOI. ta$le( O. ta$le-#"ield-
com%o%r ta$le(#"ield(
Operatia I77DR NOI7 are ur$atoarele parti4
, table1. table2 , reprezinta nu$ele tabelelor din care se co$bina
inregistrarile
, ield1. ield2 5 reprezinta nu$ele ci$purilor dupa care se ace
@onctiunea. 8aca ele nu sint nu$erice. trebuie sa ie de acelasi tip.
aceeasi di$ensiune. dar nu trebuie sa aiba acelasi nu$e.
, co$popr 5 reprezinta orice operator relational4 PH.P PQ.P PR.P PQH.P
PRH.P sau PQR.P
Obser*atii4
Acest tip de @onctiune este cel $ai utilizat si se poate olosi in orice
clauza (RO-. %o$bina inregistrarile din doua tabele. ori de cite ori e&ista
*alori care isi corespund in ci$pul co$un din cele doua tabele.
7u se poate ace @onctiune pe tipuri de date OLD sau -e$o.
Comanda UPDATE
Per$ite $odiicarea *alorilor ci$purilor intr,o tabela speciicata. pe baza
unui criteriu speciicat. Are ur$atoarea sinta&a4
UPDATE ta$le
SET neDvalue
?5ERE criteria
%o$anda <P8A"D are ur$atoarele parti4
, table 5 reprezinta nu$ele tabelei ce contine datele ce *or i
$odiicate.
, ne6*alue , este e&presia care deter$ina *aloarea ce *a i $e$orata
intr,un anu$e ci$p din inregistrarile care se actualizeaza.
, criteria 5 este e&presia care deter$ina inregistrarile ce *or i
actualizate
Ca%#* Active Server Pages
*#- Pagini ASP
O pagina ASP este un isier stocat pe un ser*er +eb si care are e&tensia
.ASP. Aceasta e&tensie speciala ace deosebirea dintre o pagina ASP si un
isier /"-L nor$al care are e&tensia .5T& sau .5T&.
%ind un utilizator *iziteaza un site +eb si cere un isier /"-L nor$al.
ser*erul preia pur si si$plu isierul de pe #ard,discul sau din $e$oria
calculatorului si il tri$ite bro6serului utilizatorului. Cro6serul interpreteaza
continutul /"-L al isierului si *izitatorul *a *edea pagina +eb.
%ind cine*a solicita o pagina /"-L nor$ala. ser*erul +eb nu este
interesat de continutul isierului. Rolul ser*erului +eb se rezu$a la preluarea
isierului corect ara a,l prelucra. "oata $unca de interpretare a continutului
isierului este realizata de bro6serul utilizatorului.
Pe de alta parte. cind cine*a solicita o pagina ASP. ser*erul +eb *a a*ea
un rol $ult $ai acti*. Inainte ca isierul sa ie tri$is catre bro6serul
utilizatorului. el este $ai intii prelucrat de catre ser*erul +eb. Acesta din
ur$a interpreteaza si e&ecuta orice script,uri dintr,o pagina ASP. inainte ca
acesta sa ie tri$is catre bro6serul utilizatorului. 8atorita aptului ca o pagina
ASP este prelucrata de catre ser*er in loc de bro6ser. o astel de pagina este
co$patibila cu toate bro6serele +eb.
Paginile ASP contin script,uri pe parte de ser*er. %a li$ba@ de generare a
script,urilor. se poate utiliza -icrosot !isual Casic Scripting Ddition
0!CScript3. sau -icrosot Nscript sau PerlScript. (ir$a -icrosot include
Nscript in te#nologia ASP. PerlScript nu este un produs -icrosot.
Li$ba@ele de generare de script,uri. cu$ este !CScript. diera de
li$ba@ele de progra$are co$plete. cu$ sunt !isual Casic si Na*a. prin
si$plitatea regulilor si sinta&ei lor. 8e e&e$plu. !CScript nu necesita
declararea *ariabilelor ca tipuri particulare de date.
-ai $ult. spre deosebire de !isual Casic sau Na*a. o pagina ASP nu
trebuie co$pilata intr,un isier separat inainte de a o putea e&ecuta. %ind
$odiicati o pagina ASP. aceasta este reco$pilata auto$at la ur$atoarea
solicitare.
A*anta@ul utilizarii unui li$ba@ de generare de script,uri la construirea
paginilor +eb este aptul ca acesta aciliteaza $odiicarea unui site +eb
c#iar si dupa ce a ost lansat in Internet. 8aca se descopera o eroare in site. se
poate incarca rapid pagina respecti*a in progra$ul 7otepad sau +ordpad
unde se *a rezol*a proble$a.
7u trebuie trasa concluzia ca. daca o pagina ASP utilizeaza un li$ba@ de
generare de script,uri. atunci paginile Acti*e Ser*er sunt lente sau nu asigura
acoperirea necesara. Script,urile ASP ruleaza in acelasi proces ca si ser*erul
+eb si poate i di*izat in ire de e&ecutie. Acest lucru per$ite unei pagini
ASP sa oere si$ultan. in $od eicient. suport pentru un nu$ar $are de
utilizatori.
O pagina ASP ar i strict li$itata daca nu ar putea contine decit script,uri.
S,ar putea aisa ora e&acta sau alte $esa@e interesante. dar nu ar e&ista
posibilitatea de a prelua inor$atii de la utilizatori. de a stoca date intr,o baza
de date sau de a crea isiere pe ser*er. 8in ericire. o pagina ASP poate
contine co$ponente pe parte de ser*er.
O co$ponenta este ce*a care. de obicei. are $etode. proprietati si colectii.
&etodele unei co$ponente deter$ina actiunile pe care le puteti eectua
cu un obiect.
Pro%rietatile unei co$ponente pot i citite sau stabilite pentru a preciza
starea co$ponentei.
Colectiile unei co$ponente sunt seturi de perec#i c#eie si *aloare.
reeritoare la co$ponenta.
Paginile Acti*e Ser*er au doua tipuri de co$ponente4 obiecte incluse si
co$ponente ce pot i instalate.
%ele sase obiecte incluse in Acti*e Ser*er pages sunt4
A%%lications , reprezinta inor$atia care poate i parta@ata intre toti
utilizatorii unei aplicatii ASP.
O$0ectConte>t , acest obiect se utilizeaza la paginile ASP care se
ocupa de tranzactii
ReEuest , reprezinta toate inor$atiile tri$ise de bro6ser catre ser*er.
inclusi* *ariabile de or$a si siruri interogare.
Res%onse , reprezinta toate inor$atiile tri$ise de la un ser*er catre un
bro6ser. inclusi* continutul /"-L tri$is de catre o pagina ASP.
Server , per$ite olosirea pe ser*er a dierite unctii utilitare
Session , reprezinta inor$atia reeritoare la sesiunea de lucru
particulara a unui utilizator.
In paginile Acti*e Ser*er este inclus un set special de obiecte 4 ActiveF
Data. care per$it accesarea unei baze de date dintr,o pagina ASP. Aceste
obiecte se utilizeaza pentru a insera. actualiza si sterge linii dintr,un tabel.
Aceste obiecte se pot olosi. de ase$enea. pentru a prelua un set de
inregistrari dintr,o tabela si a le aisa intr,o pagina ASP.
*#( Accesarea $a,elor de date
ActiveF Data O$0ects 0 ADO 3 reprezinta o te#nologie e&tensibila si
usor de utilizat care per$ite accesul la baze de date din cadrul paginilor de
+eb. A8O se poate utiliza pentru a scrie scripturi co$pacte si scalabile
pentru conectarea la baze de date prin inter$ediul ODBC 0 Open 8atabase
%onnecti*it1 3.
Inainte de a putea desc#ide o cone&iune la o baza de date. *a trebui sa
urniza$ paginii ASP inor$atii despre localizarea izica a bazei de date. %u
alte cu*inte trebuie sa urniza$ script,ului o $etoda de gasire a bazei de date
pe unitatea de #ard disc. O cale de a realiza acest lucru cu a@utorul nu$elui de
sursa de date 0 8ata Source na$e,8S73.
Se pot crea doua tipuri dierite de nu$e de sursa de date. In cazul in
care se creaza un nu$e de sursa isier 0(ile 8S73. inor$atia despre
conectarea la baza de date *a i stocata intr,un isier. In cazul in care se creaza
un nu$e de sursa de siste$. inor$atia despre conectarea la baza de date *a i
stocata in baza de date Registr1 a calculatorului.
7u e&ista $oti*e speciale care sa i$puna utilizarea unuia sau celuilalt
tip de nu$e de sursa de date. A$bele tipuri unctioneaza la el de bine. dar eu
a$ utilizat in aplicatie un nu$.e de sursa de date siste$.
Pentru a crea un isier 8S7 de tip S1ste$ pentru o baza de date de tip
-S Access se procedeaza astel4
1. 8in $eniul Start din +indo6s se alege optiunea Settings apoi
Control Panel
2. 8ublu,clic2 pe icoana ODBC ceea ce conduce la aisarea erestrei
ODBC Data Source Administrator
3. Se selecteaza optiunea S7stem DS.
2. Se selecteaza butonul Add pentru a alege dri*erul bazei de date si
apoi se apasa butonul Finish
3. Se introduce un nu$e pentru isierul 8S7 in caseta 8ata Source
7a$e
4. Prin apasarea butonului Select se alege o baza de date de tip Access
0 M.$db 3 e&istenta si apoi se apasa butonul OG.
Conectarea la o $a,a de date
Pri$ul pas in *ederea accesarii inor$atiilor dintr,o baza de date este
stabilirea unei cone&iuni cu sursa datelor. In acest scop. A8O urnizeaza
obiectul Connection care per$ite stabilirea si ad$inistrarea cone&iunilor
intre aplicatie si baza de date O8C%. Obiectul %onnection are o $are
*arietate de proprietati si $etode care per$it desc#iderea si inc#iderea
cone&iunilor la baza de date. trans$iterea interogarilor pentru selectarea si
actualizarea datelor.
Pentru a stabili o cone&iune la baza de date trebuie creata o instanta a
obiectului %onnection. Scriptul ur$ator creaza o instanta a obiectului
%onnection si apoi desc#ide cone&iunea 4
QST se creaza o instanta a obiectului %onnection
Set cnHSer*er.%reateOb@ect 0PA8O8C.%onnectionP3
Tse desc#ide cone&iunea
cn.Open Paccess8S7P SR
O$iectul Server urnizeaza accesul la $etodele si proprietatile de pe
ser*er. -ulte dintre aceste $etode si proprietati ser*esc ca si unctii utilitare.
Sinta&a este 4
Server. proprietate U $etoda
-etodele sale sint 4 CreateO$0ect. 5T&Encode. &a%Path si
UREncode. iar proprietatea sa este Scri%tTimeout. In continuare se *a
descrie $etoda %reateOb@ect care a ost olosita in aplicatie.
&etoda CreateO$0ect creaza o instanta a unei co$ponente ser*er.
Sinta&a este 4
Server#CreateO$0ect 0 progI83
Para$etrul progI8 speciica tipul de obiect care se creaza.
I$plicit. obiectele create cu aceasta $etoda au ca scop pagina. ceea ce
insea$na ca sint distruse auto$at de catre ser*er atunci cind acesta ter$ina
de procesat pagina ASP curenta.
<n obiect se $ai poate distruge ie prin setarea *ariabilei la .othing.
ie prin setarea ei la o noua *aloare.
7u se poate crea o instanta a unui obiect a*ind acelasi nu$e ca si un
obiect bult,in. 8e e&e$plu.
QS Set Response H Ser*er.%reateOb@ect 0PResponseP3 SR *a genera eroare.
E>ecutarea interogarilor cu a0utorul o$iectului Connection
8upa desc#iderea unei cone&iuni cu a@utorul $etodei O%en a
obiectului %onnection. se poate utiliza $etoda E>ecute a aceluiasi obiect
pentru a trans$ite interogari SJL catre baza de date.Scriptul ur$ator
utilizeaza $etoda D&ecute a obiectului %onnection pentru a trans$ite bazei de
date o co$anda SJL <pdate. care insereaza date intr,o anu$e tabela.
QST se creaza o instanta a obiectului %onnection
Set cnHSer*er.%reateOb@ect 0PA8O8C.%onnectionP3
Tse desc#ide cone&iunea
cn.Open PlucrareP
T se deineste co$anda SJL
strSJLHPI7SDR" I7"O %lienti 0 7u$e. Prenu$e 3 !alues 0TpopescuT.
TIonT3P
T se utilizeaza $etoda D&ecute pentru a trans$ite aceasta co$anda TSJL
la baza de date
cn.D&ecute 0strSJL3SR
In cazul in care utilizatorul doreste sa aiseze inregistrarile returnate de
o interogare Select. rezultatul e&ecutiei acestei interogari trebuie depus intr,un
obiect de tip Recordset. care se oloseste apoi la aisarea *alorilor din
ci$purile inregistrarilor. ca in e&e$plul de $ai @os4
QST se creaza o instanta a obiectului %onnection
Set cnHSer*er.%reateOb@ect 0PA8O8C.%onnectionP3
Tse desc#ide cone&iunea
cn.Open PlucrareP
T se deineste co$anda SJL
strSJLHPSelect M ro$ %lienti Order C1 denVclient4
T se utilizeaza $etoda D&ecute pentru a trans$ite aceasta co$anda TSJL
la baza de date. iar rezultatul e&ecutiei se depune in *ariabila Tobiect rs
de tip recordset
set rsHcn.D&ecute 0strSJL3
T pentru aisarea inregistrarilor. setul rs se parcurge cu un ciclu
do 6#ile not rs.eo
SR
T se aiseaza *aloarea din ci$pul denVclient
QSHrs.ields0PdenVclientP3SR
QS
T$etoda $o*ene&t se utilizeaza pentru a trece la ur$atoarea
Tinregistrare
rs.$o*ene&t
loop SR
*#/ O$iectul Res%onse
Intr,o pagina /"-L nor$ala e&ista continut static. 8e iecare data cind
este solicitata o pagina /"-L. continutul aisat de catre pagina este acelasi.
Insa. o pagina ASP are continut ce se $odiica ori de cite ori este solicitata
pagina.
8intr,o pagina ASP se poate tri$ite continut dina$ic utilizind obiectul
Response. un obiect ASP inclus. Acest obiect reprezinta toata inor$atia
tri$isa de ser*erul +eb catre un bro6ser +eb.
Sinta&a este 4
Res%onse#colectie U proprietateU$etoda
Singura colectie care poate i utilizata este CooHies si per$ite setarea
*alorilor pentru coo2ies.
Proprietatile obiectului Response sint 4 Cuer. cac#e%ontrol. %#arset.
%ontent"1pe. D&pires. D&piresAbsolute. Is%lient%onnected. Pics si Status.
-etodele obiectului Response sint 4 Add/eader. Append"oLog.
Cinar1+rite. %lear. Dnd. (lus#. Redirect si +rite.
*#* O$iectul ReEuest
8aca obiectul Response reprezinta tot continutul tri$is de ser*erul de
+eb catre un bro6ser +eb. obiectul Request reprezinta tot continutul tri$is
de un bro6ser +eb catre ser*erul +eb. Ori de cite ori trebuie preluata
inor$atie de la un client. se utilizeaza obiectul Request.
Sinta&a este 4
ReEuest W.colectie U proprietateU$etodaX 0*ariabila3
%olectiile care pot i utilizate sint 4 %lient%ertiicate. %oo2ies. (or$.
Juer1String si Ser*er!ariables.
Singura proprietate a obiectului Request este "otalC1tes. iar singura
$etoda este Cinar1Read.
Para$etrul *ariabila este un sir care speciica articolul care se regaseste
dintr,o colectie. sau care *a i utilizat ca intrare pentru o $etoda sau
proprietate.
Colectia Form
Pentru a prelua inor$atia introdusa de un client intr,un or$ular
/"-L se utilizeaza colectia Form a obiectului ReEuest.
Sinta&a este 4
ReEuest#Form 0ele$ent3 W0inde&3U#Count X
Para$etrul ele$ent reprezinta nu$ele ele$entului de pe or$a din care
colectia isi regaseste *alorile.
Para$etrul inde& reprezinta un para$etru optional care per$ite
accesarea uneia dintre $ai $ulte *alori ale unui para$etru. Dl poate lua *alori
intre 1 si ReEuest#Form 0 para$etru C#Count.
In e&e$plul ur$ator se creaza o or$a in care utilizatorul trebuie sa
co$pleteze doua ci$puri. si anu$e 4 cod si nu$e. In $o$entul in care se
apasa butonul P%autaP aceste *alori sint tri$ise catre progra$ul %auta.asp.
Q(OR- A%"IO7HP%auta.aspP -D"/O8HPpostPR
QPR %od 4 QI7P<" 7A-DHP%O8P SIYDHP5OPRQI"8R
QPRQ"8R7u$e4QI7P<" 7A-DHP7u$eP SIYDHP5OPRQI"8R
Q"8RQI7P<" "GPDHPsub$itP *alueHP%autaPRQI"8RQI"RR
QI(OR-R
In progra$ul %auta.asp trebuie utilizat scriptul ur$ator. care per$ite
regasirea *alorilor tri$ise de catre or$a de $ai sus. %ele doua *alori sint
$e$orate in *ariabilele acodVprodus si adenVprodus.
QSacodVprodusHrequest.or$0PcodP3
adenVprodusHrequest.or$0Pnu$eP3SR
Colectia 1uer7String
%olectia 1uer7String per$ite regasirea *alorilor *ariabilelor dintr,un
sir interogare /""P. <n sir interogare /""P este speciicat de *alorile care
ur$eaza se$nului Z. D&ista $ai $ulte procese care genereaza un sir
interogare. 8e e&e$plu. tagul A /RD(
QA /RD( HPe&e$pluZsirHacesta este un sirPR sir e&e$pluQIAR
genereaza o *ariabila cu nu$ele sir care are *aloarea Pacesta este un
sirP. Sirurile interogare sint generate si prin tri$iterea unei or$e. sau de catre
utilizator prin tastarea unei interogari in caseta de adrese a bro6ser,ului.
Sinta&a este 4
ReEuest#1uer7String 0 *aribila 3 W 0inde&3U#Count X
Para$etrul *ariabila speciica nu$ele *ariabilei care trebuie regasita in
sirul interogare.
Para$etrul inde& reprezinta un para$etru optional care per$ite
accesarea uneia dintre $ai $ulte *alori ale unui para$etru. Dl poate lua *alori
intre 1 si ReEuest#1uer7String 0 *ariabila C#Count.
D&e$plu 4
QA /RD( HPdetaliu.aspZnu$eHpopa[*irstaH2OPR 7u$e si *irstaQIAR
Progra$ului detaliu.asp i se trans$ite ur$atorul sir interogare4
nu$eHpopa[*irstaH2O
%olectia Juer1String *a contine doi $e$bri. adica nu$e si *irsta.
Regasirea *alorilor celor doi $e$bri se ace astel 4
QS
!nu$eHrequest.Juer1String0Pnu$eP3
!*irstaHrequest.Juer1String0P*irstaP3
In inal. cele doua *ariabile. *nu$e si **irsta *or contine *alorile
PpopaP si P2OP.
Ca%#2 Descrierea a%licatiei
2#- Structura $a,ei de date
Caza de date utilizata de aplicatie este realizata in -S Access 2OOO si
se nu$este bdcine$a.$db. In igura 1 apar tabelele ce co$pun aceasta baza
de date si legaturile stabilite intre acestea. rezultate in ur$a aplicarii teoriei
nor$alizarii relatiilor.
(igura 1 4 Structura bazei de date bdcine$a.$db
"abela Orase contine un singur ci$p denVoras de tip "e&t. si a ost
creata in scopul usurarii acti*itatii de progra$are. in continuare putind i
i$bogatita cu alte ci$puri asa incit sa poata contribui la publicitatea care se
poate ace in @urul unui oras in scop turistic.
"abela %ine$atograe cu structura de $ai @os per$ite $e$orarea unor
inor$atii legate de cine$atograe4
, idVcine$a 0Auto7u$ber3 P\
, cine$a 0"e&t3
, denVoras 0"e&t3 (\
, adresa 0"e&t3
, teleon 0"e&t3
"abela (il$e $e$oreaza datele necesare despre il$ele care ruleaza in
cine$atograe4
, idVil$ 0Auto7u$ber3 P\
, titlu 0"e&t3
, titluVoriginal 0"e&t3
, ais 0 "e&t3 5 calea si nu$ele isierului care $e$oreaza poza cu
aisul il$ului
, gen 0te&t3
, ro$anVde 0"e&t3
, durata 07u$ber3 in $inute
, produsVde 0"e&t3 5 casa producatoare
, $uzica 0"e&t3
, site 0"e&t3 5 adresa site,ului oicial
, subiect 0-e$o3
, reco$andat 0Logic3 5pentru il$e de *aloare care sunt
reco$andate spre *izionare. capata *aloarea true
, nou 0Logic3 5pentru il$e noi. capata *aloarea true
, regizor 0"e&t3
, i$agine 0"e&t3
, producator 0"e&t3 5 directorii il$ului
, scenarist 0"e&t3
I$aginile din il$e sunt $e$orate intr,o tabela separata nu$ita
I$agini care contine ur$atoarele ci$puri4
- idVi$agine 0autonu$ber3 P\
- idVil$ 07u$ber3 ,(\
- caleVpoza 0"e&t3 , calea isierului i$agine
Inor$atiile despre actori sunt grupate in ci$purile tabelei Actori4
- idVactor 0Auton7$ber3 P\
- nu$eVactor 0"e&t3
- loculVnasterii 0"e&t3
- dataVnast 08ateIti$e3
- biograie 0-e$o3
"abela 8istributie dispune de structura4
- id 0Auto7u$ber3 P\
- idVil$ 07u$ber3 (\
- idVactor 07u$ber3 (\
- persona@ 0"e&t3 nu$ele persona@ului interpretat de actor in il$
"abela Sapta$ina $e$oreaza date despre sapta$ina curenta si cea
*iitoare pentru care $e$ora$ datele4
- sapta$ina 0"e&t3 P\
- data1 08ateIti$e3 5 data de inceput a sapta$inii
- data2 08ateIti$e 5 data de sirsit a sapta$inii
"abela Progra$are $e$oreaza inor$atii despre orele la care ruleaza
il$ele in dieritele cine$atograe4
- id 0Autonu$ber3 P\
- sapta$ina 0"e&t3 , (\ indica sapta$ina in care ruleaza il$ul
0curenta sau *iitoare3
- idVcine$a 07u$ber3 (\
- idVil$ 07u$ber3 5 (\
- progra$ 0"e&t3 , zilele si orele la care ruleaza il$ul
"abela <tiliz este cea care $e$oreaza nu$ele de utilizator si parola
pentru utilizatorii care *or pri$i drept de gestionare a bazei de date.
2#( egaturi intre ta$ele
In acest paragra doresc sa e&plic legaturile pe care le,a$ stabilit intre
tabelele bazei de date.
Intre tabelele Orase si %ine$atograe e&ista o legatura 1 4$ deoarece
intr,un oras e&ista unul sau $ai $ulte cine$atograe.
Intre tabelele (il$e si I$agini e&ista o legatura 14$. deoarece pentru
un il$ pute$ $e$ora una sau $ai $ulte scene.
Intre tabelele (il$e si Actori e&ista o legatura $4$. pentru ca intr,un
il$ @oaca $ai $ulti actori. iar un actor poate i distribuit in $ai $ulte il$e.
Pentru ca in $odelul relational nu se poate i$ple$enta direct o legatura $4$.
atunci a aparut cea de a treia tabela 8istributie. care contine c#eile pri$are
din cele doua tabele i$plicate in legatura $4$. precu$ si ci$puri
supli$entare.
Intre tabelele %ine$atograe si (il$e e&ista o legatura $4$. pentru ca
intr,un cine$a pot rula unul sau $ai $ulte il$e in sapta$ina curenta sau
*iitoare. iar acelasi il$ poate rula intr,unul sau $ai $ulte cine$atograe. %a
ur$are. a aparut tabela Progra$are.
Se obser*a ca aici $ai e&ista o legatura 14$ intre tabelele Sapta$ina si
Progra$are. pentru ca atit pentru sapta$ina curenta. cit si pentru cea *iitoare
e&ista $ai $ulte progra$ari de il$e in di*erse cine$atograe.
2#/ Inter"ata cu utili,atorul
In acest paragra *oi prezenta aspectul si continutul paginilor site,ului
care ace obiectul acestei lucrari.

2#* !alidari asu%ra datelor
Procedurile de *alidare sunt utile in partea de ad$inistrare a site,ului.
pentru ca acolo apar operatii de inserare sau actualizare asupra datelor.
Procedurile de *alidare a@uta la pastrarea consistentei datelor si pentru a e*ita
ca utilizatorul sa paraseasca pagina din cauza unei erori. !oi prezenta in
continuare cite*a din *alidarile acute pe parcursul acestei lucrari.
La adaugarea unui nou cine$atogra. este necesar ca denu$irea
acestuia sa ie co$pletat. adica ci$pul cine$a sa ie dierit de sirul *id.
!eriicarea se ace in isierul .asp care i$ple$enteaza operatia de inserare sau
adaugare date. 8aca *aloarea din ci$p este *ida se aiseaza un $esa@ de
eroare corespunzator. ar utilizatorul este tri$is inapoi in pagina in care trebuie
sa repare gresala.
if cinema="" then
errorform "Cimpul Cinematograf trebuie completat !", backpage
end if
In aplicatie este utilizata procedura Drror(or$ care are doi para$etri
or$ali4 error$sg si bac2page. La apel. Drror$sg *a contine $esa@ul de
eroare care trebuie aisat. iar bac2page nu$ele isierului .asp la care trebuie
intors utilizatorul.
<!-- #INCLU! "IL!="form"ield#$a#p" --%
<&'U( errorform )error*'+,backpage,&%
<-.*L%
<-!/%<.I.L!%!roare<0.I.L!%<0-!/%
<(1%<(1%<(1%<(1%
<(23 bgcolor="black"%
<C!N.!1%<"2N. 'I4!=5 C2L21="6hite"%
<&=error*'+&%
<0"2N.%
<"21* /C.I2N="<&=backpage&%" *!.-2 ="72'."%
<Input name="error" t8pe="hidden" 9alue=":"%
<&form"ield#&%
<IN7U. .37!="'ubmit" ;/LU!="Inapoi"%
<0"21*%<0C!N.!1%
<0(23%
<0-.*L%
<&1e#pon#e$!nd
!N 'U(&%
La gestionarea inor$atiei din tabela (il$e trebuie *eriicat ca titlul
unui il$ nu este sirul *id. 8e ase$enea. se *eriica daca ci$pul durata este
nu$eric. pentru ca altel *o$ a*ea eroare la e&ecutia co$enzilor Insert sau
<pdate. Aceasta ulti$a *eriicare se ace cu unctia Is7u$eric03.
if titlu="" then
errorform ".itlul filmului trebuie completat !", backpage
end if
if not i#numeric)durata, then
errorform "urata e#te un cimp numeric !", backpage
end if
La introducerea sau actualizarea datelor despre actori. se *eriica ca
nu$ele actorului sa nu ie sirul *id. si de ase$enea ca data lui de nastere sa
aiba or$atul correct de data calendaristica. Pentru aceasta se oloseste
unctia Is8ate03.
if nume<actor="" then
errorform "Numele actorului trebuie completat !", backpage
end if
if not i#date)data<na#t, then
errorform "ata na#terii nu are format corect de data
calendari#tica !", backpage
end if
La actualizarea datelor din tabela Sapta$ina. trebuie ca datele de
inceput si sirsit ale sapta$inii sa ie co$pletate. si sa aiba or$at correct.
if data:="" then
errorform "ata inceput trebuie completata !", backpage
end if
if not i#date)data:, then
errorform "ata nu are format corect de data calendari#tica !",
backpage
end if
if data=="" then
errorform "ata #fir#it trebuie completata !", backpage
end if
if not i#date)data=, then
errorform "ata nu are format corect de data calendari#tica !",
backpage
end if
-ai @os apare un alt e&e$plu de *alidare. din pagina <tilizatori. Aici se
*eriica in pri$ul rind ca nu$eVutilizator sa ie dierit de sirul *id. Se *eriica
apoi ca si ci$purile parola si conir$a parola sa ie dierite de sirul *id si apoi
sa ie identice.
if nume<utili>ator="" then
errorform "Cimpul Nume utili>ator trebuie completat !", backpage
end if
if parola="" then
errorform "Cimpul 7arola trebuie completat !", backpage
end if
if parola:="" then
errorform "Cimpul Confirma parola trebuie completat !", backpage
end if
if parola<%parola: then
errorform "Cimpul Confirma parola difera de cimpul 7arola!", backpage
end if
Pentru a a*ea acces la paginile de ad$inistrare. utilizatorul trebuie sa
urnizeze un nu$e de utilizator si o parola. "rebuie sa se *eriice daca in
tabela <tilizator e&ista o inregistrare corespunzatoare acestuia. In cazul in
care nu e&ista. se aiseaza $esa@ul corespunzator. altel. utilizatorul *a i lasat
sa $earga $ai departe. dupa ce se seteaza in *ariabila coo2ie c datele de
identiicare ale acestuia 0 utilizator si parola3. !alorile din aceste doua
ci$puri ale *ariabilei coo2ie c. *or i *eriicate ca e&ista si sunt co$pletate in
iecare pagina a site,ului.
<&utili>ator=re?ue#t$form)"utili>ator",&%
<&parola=re?ue#t$form)"parola",&%
<&m8d#n="'N=bdcinema"
#et con=#er9er$createob@ect)"adodb$connection",
con$open m8d#n
#?l="#elect A from utili> Bhere utili>ator=C" D utili>ator D "C and
parola=C" D parola D "C"
#et r#=con$eEecute )#?l,
if not r#$eof then
1e#pon#e$cookie#)"c",)"utili>ator",=utili>ator
1e#pon#e$cookie#)"c",)"parola",=parola
cu#er =1e?ue#t$Cookie# )"c",)"utili>ator",
cpa## =1e?ue#t$Cookie# )"c",)"parola",&%
<&re#pon#e$redirect "indeE$a#p"
el#e&%
<(1%<(1%<(1%<(1%
<C!N.!1%<"2N. 'I4!=5 color="Bhite"%Nu am putut identifica
utili>atorul!<0"2N.%
<"21* /C.I2N="intra$a#p" *!.-2="72'."%
<IN7U. .37!="'ubmit" ;/LU!="Inapoi"%
<0"21*%
<0C!N.!1%
<&end if&%
8upa intrarea unui utilizator in partea de ad$inistrare a site,ului. in
iecare pagina are loc o *eriicare ca cea din script,ul de $ai @os.
<&cu#er =1e?ue#t$Cookie# )"c",)"utili>ator",
cpa## =1e?ue#t$Cookie# )"c",)"parola",
if cu#er="" or cpa##="" then
permi#=fal#e
el#e
permi#=true
end if&%
Se regasesc *alorile depuse in *ariabila coo2ie c 0 utilizator si parola 3
si se depun in *ariabilele cuser si cpass. olosind colectia %oo2ies a obiectului
Request. Se *eriica apoi daca acestea sunt dierite de sirul *id. 8aca da
*ariabila per$is capata *aloarea true altel *aloarea alse. In continuare. in
pagina se *eriica daca *ariabila per$is este true. caz in care se aiseaza
inor$atia din acea pagina. In caz contrar. *izitatorul este reuzat. spunind ca
nu are drepturi.
Aceasta or$a de *alidare in iecare pagina a site,ului de ad$inistrare
i$piedica intrarea in pagini ocolind partea de login unde trebuie urnizat
nu$ele si parola de utilizator.
2#2 Tehnici de %rogramare utili,ate in %artea de administrare
2#2#- Cone>iunea la $a,a de date
In iecare pagina a site,ului care aiseaza inor$atii din baza de date
trebuie realizata cone&iunea la baza de date. 8upa cu$ se obser*a cone&iunea
la baza de date este realizata prin inter$ediul O8C% 0Open 8atabase
%onnecti*it13. Pentru a realiza cone&iunea la baza de date se creeaza o
instanta a obiectului Adodb.%onnection olosind $etoda %reateob@ect a
obiectului Ser*er. Obiectul de tip cone&iune se nu$este con. Aceasta
cone&iune se desc#ide olosind $etoda open si speciicind nu$ele sursei
datelor declarata in O8C%. 7u$ele Cdcine$a declarat in O8C% 0 in S1ste$
8S7 3 indica catre baza de date bdcine$a.$db care este olosita de paginile
site,ului.
<&m8d#n="'N=bdcinema"
#et con=#er9er$createob@ect)"adodb$connection",
con$open m8d#n&%
2#2#( Inserarea si actuali,area datelor
In partea de ad$inistrare. lucrurile sunt progra$ate sa se desasoare
astel4 in partea de sus apare $eniul principal cu principalele #iperlegaturi. se
aiseaza datele e&istente in tabela selectata. in dreptul iecarei inregistrari se
aiseaza #iperlegaturile Actualizare si Stergere. iar $ai @os butonul Adauga
care per$ite adaugarea unei noi inregistrari. !oi ace e&e$pliicare pe
gestiunea tabelei cine$atograe. Pentru aisarea inregistrarilor e&istente in
aceasta tabela se e&ecuta co$anda Select din *ariabila sqls. 8upa e&ecutia
co$enzii. se obtine *ariabila recordset rss olosita apoi pentru aisarea
inregistrarilor. Se parcurg aceste inregistrari cu a@torul unui iclu do 6#ileE
loop peste *ariabila rss. in prealabil *eriicindu,se daca recordset,ul nu este
*id. Se aiseaza datele despre cine$atograe. adica *alorile din ci$purile
cine$a. adresa si teleon. /iperlegatura Actualizeaza per$ite editarea
inregistrarii identiicata in $od unic de *aloarea idVcine$a. /iperlegatura ne
conduce in aceeasi pagina catre care se tri$ite *ariabila idVcine$a si edit
pentru a sti ca este *orba de operatia de editare si pentru a sti ce inregistrare se
editeaza.
<&#?l#="#elect A from Cinematografe order b8 den<ora#"
#et r##=con$eEecute )#?l#,&%
<&if not r##$eof then&%
<C!N.!1%<b%Cinematografe<0b%<br%
<./(L! (21!1=: Bidth=FGG cell#pacing=G%
<&do Bhile not r##$eof&%
<&id<cinema=r##$field#)"id<cinema",&%
<.1%
<.%<(%<&=r##$field#)"cinema",&%<td%<&=r##)"den<ora#",
&%<0(%<0.%
<td%<&=r##)"adre#a",&%<td%<&=r##)"telefon",&%
<&leg:="#tergec:$a#pHid<cinema=" D id<cinema&%
<&leg=="c:$a#pHedit=:Did<cinema=" D id<cinema&%
<.%</ -1!"="<&=leg=&%"%/ctuali>are<0/%0</ -1!"="<
&=leg:&%"%'tergere<0/%<0.%
<0.1%
<&r##$mo9eneEt
loop&%
<0./(L!%<0C!N.!1%<(1%<(1%
<&end if&%
8aca *ariabila edit recuperata cu a@utorul colectiei Juer1string a
obiectului Request are *aloarea 1. trebuie eectuata operatia de editare a
inregistrarii obtinuta prin e&ecutia co$enzii Select din *ariabila sir sql1 si
depusa in obiectul rs1.
<&edit=re?ue#t$?uer8#tring)"edit",&%
<&if edit=: then
#?l:="#elect A from Cinematografe Bhere id<cinema=" D id<cinema
#et r#:=con$eEecute )#?l:,
end if&%
Cutonul de adaugare o noua inregistrare este un buton sub$it a$plasat
pe o or$a care transera controlul aceluiasi isier. dar tri$ite *ariabila ad
egala cu 1 pentru a indica operatia de adaugare.
<"21* /C.I2N="c:$a#pHad=:" *!.-2="72'." %
<.1%<.%<IN7U. .37!="'U(*I." ;/LU!="/dauga"%<0.%<0.1%
<0"21*%
In continuare. in unctie de *alorile *ariabilelor edit si ad se aiseaza
or$a pentru editarea sau adaugarea datelor. 8eci. se testeaza daca *ariabila
edit are *aloarea 1. caz in care se aiseaza controalele populate cu *alorile din
ci$purile inregistrarii de editat. Altel. se testeaza daca *ariabila ad are
*aloarea 1. caz in care se aiseaza or$a cu controalele *ide. pregatita pentru
pri$irea noilor date. 8upa co$pletarea or$ei. controlul este redat unui alt
isier in care se ace. dupa caz inserare sau actualizare.
<&if ad=: then&%
<C!N.!1%<./(L!%
<"21* /C.I2N="admod:$a#pHad=:" *!.-2="72'."%
<.1%<.%CinemaI<0.%
<.%<IN7U. .37!=".!J." N/*!="cinema" ;/LU!="<&=cinema&%"
'I4!=5G%<0.%<0.1%
<.1%<.%2ra#I<0.%
<.%
<&
#?lo="'elect A from 2ra#e "
#et r#o=con$eEecute)#?lo,&%
<#elect name="den<ora#"%
<&if not r#o$eof then&%
<&do Bhile not r#o$eof&%
<option 9alue="<&=r#o)"den<ora#",&%" <&if r#o)"den<ora#",=den<ora# then
&%#elected<&end if&%%<&=r#o)"den<ora#",&%
<&r#o$mo9eneEt&%
<&loop&%
<&end if&%
<0#elect%
<0.%<0.1%
<.1%<.%/dre#aI<0.%
<.%<IN7U. .37!=".!J." N/*!="adre#a" ;/LU!="<&=adre#a&%"
'I4!=5G%<0.%<0.1%
<.1%<.%.elefonI<0.%
<.%<IN7U. .37!=".!J." N/*!="telefon" ;/LU!="<&=telefon&%"
'I4!==G%<0.%<0.1%
<.1%<.%<IN7U. .37!="'U(*I." ;/LU!="'al9ea>a"%<0.%
<0"21*%
<"21* /C.I2N="c:$a#pHcancel=:" *!.-2="72'."%
<.%<IN7U. .37!="'U(*I." ;/LU!="/bandon"%<0.%<0.1%
<0"21*%
<0./(L!%<0C!N.!1%
<&el#e&%
<&if edit=: then&%
<C!N.!1%<./(L!%
<"21* /C.I2N="admod:$a#pHedit=:" *!.-2="72'." %
<IN7U. .37!=hidden N/*!="id<cinema" ;/LU!="<&=r#:$field#)"id<cinema",&%"%
<.1%<.%CinemaI<0.%
<.%<IN7U. .37!=".!J." N/*!="cinema" ;/LU!="<&=r#:$field#)"cinema",&%"
'I4!=5G%<0.%<0.1%
<.1%<.%2ra#I<0.%
<.%
<&
#?lo="'elect A from 2ra#e"
#et r#o=con$eEecute)#?lo,&%
<#elect name="den<ora#"%
<&if not r#o$eof then&%
<&do Bhile not r#o$eof&%
<option 9alue="<&=r#o)"den<ora#",&%" <&if
r#o)"den<ora#",=r#:)"den<ora#", then&%#elected<&end if&%%
<&=r#o)"den<ora#",&%
<&r#o$mo9eneEt&%
<&loop&%
<&end if&%
<0#elect%
<0.%<0.1%
<.1%<.%/dre#aI<0.%
<.%<IN7U. .37!=".!J." N/*!="adre#a" ;/LU!="<&=r#:$field#)"adre#a",&%"
'I4!=5G%<0.%<0.1%
<.1%<.%.elefonI<0.%
<.%<IN7U. .37!=".!J." N/*!="telefon" ;/LU!="<&=r#:$field#)"telefon",&%"
'I4!==G%<0.%<0.1%
<.1%<.%<IN7U. .37!="'U(*I." ;/LU!="'al9ea>a"%<0.%
<0"21*%
<"21* /C.I2N="c:$a#pHcancel=:" *!.-2="72'." %
<.%<IN7U. .37!="'U(*I." ;/LU!="/bandon"%<0.%<0.1%
<0"21*%
<0./(L!%<0C!N.!1%
<&end if&%
<&end if&%
In cazul e&e$plului nostru. actualizarea sau inserarea se ace de catre
isierul ad$od1.asp. %atre acesta se tri$it *ariabilele ad sau edit care se
recupereaza olosind colectia Juer1string a obiectului Request. Se obtin si
*alorile *ariabilelor co$pletate pe or$a. dar olosind colectia (or$s a
aceluiasi obiect Request. Se ac *alidarile asupra datelor. 8aca acestea nu
sunt co$pletate. sau sunt co$pletate gresit. controlul este redat inapoi
isierului pentru a corecta greselile. 8aca toate lucrurile sunt bune. se trece la
e&ecutia co$enzii SJL Insert daca *ariabila ad are *aloarea 1. sau a co$enzii
SJL <pdate daca *ariabila edit are *aloarea 1. D&ecutia acestor co$enzi se
ace cu a@utorul $etodei D&ecute a obiectului cone&iune la baza de date. In
inal. controlul este redat isierului anterior. olosind $etoda Redirect a
obiectului Response.
<&m8d#n="'N=bdcinema"
#et con=#er9er$createob@ect)"adodb$connection",
con$open m8d#n
ad=re?ue#t$?uer8#tring)"ad",
edit=re?ue#t$?uer8#tring)"edit",&%
<&id<cinema=re?ue#t$form)"id<cinema",&%
<&cinema=re?ue#t$form)"cinema",&%
<&den<ora#=re?ue#t$form)"den<ora#",&%
<&adre#a=re?ue#t$form)"adre#a",&%
<&telefon=re?ue#t$form)"telefon",&%
<&if ad=: then
backpage="c:$a#pHad=:"
el#e
backpage="c:$a#pHedit=:Did<cinema=" D id<cinema
end if
if cinema="" then
errorform "Cimpul Cinematograf trebuie completat !", backpage
end if
if ad=: then
#?lin#="In#ert into Cinematografe)cinema, den<ora#, adre#a, telefon,
;alue#)C"
#?lin#=#?lin# D cinema D "C,C" D den<ora# D "C,C" D adre#a D "C,C" D
telefon D "C,"
end if
if edit=: then
#?lin#="Update cinematografe 'et cinema=C" D cinema D "C,"
#?lin#=#?lin# D "den<ora#=C" D den<ora# D "C,"
#?lin#=#?lin# D "adre#a=C" D adre#a D "C,"
#?lin#=#?lin# D "telefon=C" D telefon D "C Bhere id<cinema=" D
id<cinema
end if
con$eEecute )#?lin#,
ad=G
edit=G&%
<(23%
<&re#pon#e$redirect "c:$a#p"&%
2#2#/ Stergerea datelor
In ceea ce pri*este stergerea unei inregistrari. trebuie ur$ata
#iperlegatura cu acelasi nu$e care ne conduce in isierul .asp ce realizeaza
stergerea eecti*a a acesteia. %atre acest isier se tri$ite obligatoriu *aloarea
ci$pului c#eie pri$ara pentru a identiica in $od unic inregistrarea care se
sterge. 7 cazul ad$inistrarii tabelei %ine$atograe. la stergere. controlul este
dat isierului stergec1.asp catre care se tri$ite *aloarea *ariabilei idVcine$a.
<&leg:="#tergec:$a#pHid<cinema=" D id<cinema&%
In isierul stergec1.asp. se ala *aloarea *ariabilei idVcine$a tri$isa
sub or$a unui sir interogare. se descide cone&iunea la baza de date si se
e&ecuta co$anda 8elete cu clauza +#ere care identiica in $od unic
inregistrarea de sters. 8upa e&ecutia co$enzii SJL delete controlul este redat
isierului anterior cu aceeasi $etoda Redirect a obiectului Response.
<&id<cinema=re?ue#t$?uer8#tring)"id<cinema",&%
<&m8d#n="'N=bdcinema"
#et con=#er9er$createob@ect)"adodb$connection",
con$open m8d#n
#?lin#="elete A from Cinematografe Bhere id<cinema=" D id<cinema
con$eEecute )#?lin#,&%
<&re#pon#e$redirect "c:$a#p"&%
In inal. doresc sa precizez. ca in iecare pagina de ad$inistrare a
datelor din tabele bazei de date. lucrurile decurg intr,o $aniera ase$anatoare.
2#3 Tehnici de %rogramare utili,ate in %artea de client
2#3#- Pagina Acasa
Aiseaza pe de o parte titlurile il$elor care au ci$pul 7ou setat la
"rue. precu$ si il$ele reco$andate care au ci$pul Reco$andat setat la
"rue. Pentru aceasta se selecteaza din tabela (il$e inregistrarile care satisac
conditia nouH"rue. %o$anda Select $e$orata in *ariabila sql1. este tri$isa
spre e&ecutie la SBC8. iar rezultatul este depus in *ariabila rs1. *ariabila
obiect de tip recordset. D&ectia unei co$enzi SJL se ace cu $etoda D&ecute
a obiectului cone&iune la baza de date. Pentru a aisa titlurile il$elor noi se
parcurge obiectul recordset rs1 cu a@utorul unui ciclu do 6#ileEloop.
"recerea la ur$atoarea inregistrare se ace cu $etoda -o*ene&t a obiectului
recordset rs1.
<&#?l:="'elect A from "ilme Bhere nou=true"
#et r#:=conntemp$eEecute)#?l:,&%
<&if not r#:$eof then&%
<hK%"ilme noi<0hK%
<&do Bhile not r#:$eof&%
<table Bidth=5F5%
<tr%<td col#pan==%
<a href="$0filme0filmed$a#pHid<film=<&=r#:)"id<film",&%"%
<hK%<&=r#:)"titlu",&% ) <&=r#:)"titlu<original",&% ,<0hK%<0a%
<tr%<td 9align="top"%
<&afi#="$" D r#:)"afi#",&%
<img #rc="<&=afi#&%"%
<td%<&=r#:)"#ubiect",&%
<tr%<td%Dnb#p<td%Dnb#p
<0table%
<&r#:$mo9eneEt&%
<&loop&%
<&end if&%
Aisarea *alorii dintr,un ci$p al recordset,ului se ace cu constructia Q
SHrecordset0]nu$eVci$p^3SR. 8e e&e$plu pentru a aisa titlul il$ului se
scrie 4 <&=r#:)"titluP3SR. Pe titlul il$ului este a$plasata o #iperlegatura
care ne tri$ite in pagina il$ed.asp care aiseaza detalii despre il$. %atre
aceasta pagina se tri$ite sub or$a unui sir interogare *ariabila idVil$ setata
la *aloarea ci$pului idVil$. care identiica in $od unic il$ul despre care
*re$ detalii.
Pentru aisarea inor$atiilor despre il$ele reco$andate. se procedeaza
ase$anator. cu script,ul ur$ator4
<&#?l:="'elect A from "ilme Bhere recomandat=true and nou=fal#e"
#et r#:=conntemp$eEecute)#?l:,&%
<&if not r#:$eof then&%
<hK%;a recomandam urmatoarele filme<0hK%
<&do Bhile not r#:$eof&%
<table Bidth=5F5%
<tr%<td col#pan==%
<a href="$0filme0filmed$a#pHid<film=<&=r#:)"id<film",&%"%
<hK%<&=r#:)"titlu",&% ) <&=r#:)"titlu<original",&% ,<0hK%<0a%
<tr%<td 9align="top"%
<&afi#="$" D r#:)"afi#",&%
<img #rc="<&=afi#&%"%
<td%<&=r#:)"#ubiect",&%
<tr%<td%Dnb#p<td%Dnb#p
<0table%
<&r#:$mo9eneEt&%
<&loop&%
<&end if&%
2#3#( Pagina In cinematogra"e
Se aiseaza datele care incadreaza sapta$ina curenta. Pentru aceasta.
dupa ce ne conecta$ la baza de date selecta$ din tabela Sapta$ina
inregistrarea corespunzatoare sapta$inii curente.
<&#?l:="'elect A from 'aptamina Bhere #aptamina=CcurentaC"
#et r#:=conntemp$eEecute)#?l:,&%
<hK%7rogramul cinematografelor in #aptamina <&=r#:)"data:",&%-<
&=r#:)"data=",&%<0hK%
Se aiseaza apoi o lista drop,do6n care contine nu$ele oraselor din
tabela Orase ordonate alabetic. Lista contine inregistrarile din tabela Orase
selectate cu co$anda din *ariabila sql2. Lista drop,do6n este realizata
dina$ic cu a@utorul obiectului recordset rs2. olosind tag,urile QSelectR si
QOptionR. Lista este inclusa intr,o or$a /"-L care la apasarea butonului de
tip Sub$it Alege ne *a tri$ite in aceeasi pagina inVcine$atograe.asp. pentru
ca dupa alegerea unui oras tot aici se *or aisa cine$atograele si progra$ele
lor corespunzatoare orasului ales.
<&#?l=="'elect A from ora#e order b8 den<ora#"
#et r#==conntemp$eEecute)#?l=,&%
<table%
<form method="po#t" action="in<cinematografe$a#p"%
<tr%<td%<#elect name="do:"%
<&if not r#=$eof then&%
<&do Bhile not r#=$eof&%
<option 9alue="<&=r#=)"den<ora#",&%" <&if den<ora#=r#=)"den<ora#",
then&%#elected<&end if&%%
<&=r#=)"den<ora#",&%<0option%
<&r#=$mo9eneEt&%
<&loop&%
<&end if&%
<0#elect%
<td%<input t8pe="#ubmit" 9alue="/lege"%
<td%Dnb#p
<0form%
Obtinerea *ariabilei care indica orasul ales in or$ularul /"-L. se
obtine olosind colectia (or$s a obiectului Request. !ariabila denVoras ne *a
a@uta $ai departe sa selecta$ doar inor$atia aerenta acestui oras.
<&den<ora#=re?ue#t$form)"do:",
Se selecteaza doar cine$atograele din orasul selectat si indicat de
*aribila denVoras 0 *ariabila sqlc3. In rsc se depun aceste inregistrari. Acest
recordset este parcurs sec*ential pentru a aisa nu$ele cine$atograului.
adresa si teleonul sau. A iecare pas al ciclului peste rsc. se e&ecuta
interogarea Select din *ariabila sqlil$e. Dste o interogare co$plicata care
per$ite aisarea titlurilor il$elor ce ruleaza in sapata$ina curenta la
cine$atograul curent. Pentru a aisa titlurile acestor il$e. se parcurge cu un
ciclu *ariabila recordset rs in care sunt depuse aceste inregistrari. Pentru
iecare titlu de il$ aisat. trebuie sa apara si progra$arile acestuia. ziua si
ora. Pentru aceasta trebuie e&ecutata interogarea din *ariabila sqlp care
selecteaza din tabela Progra$ari toate inregistrarile pentru il$ul current si la
cine$atograul current. Dle sunt depuse in *ariabila recordset rsp care si ea
trebuie parcursa cu un ciclu pentru aisare.
%a ur$are in script,ul de $ai @os apar trei cicluri i$bricate4 unul pentru
aisarea cine$atograelor din orasul selectat. al doilea pentru il$ele care
ruleaza in sapta$ina curenta la iecare cine$atogra si al treilea pentru
progra$arile iecarui il$ la iecare cine$atogra.
<&if den<ora#<%"" then&%
<&#?lc="'elect A from cinematografe Bhere den<ora#=C" D den<ora# D "C"
#et r#c=conntemp$eEecute)#?lc,&%
<&if not r#c$eof then&%
<table Bidth=5F5%
<&do Bhile not r#c$eof&%
<tr bgcolor="lightgre8"%<td col#pan==%<font color="black"%<
&=r#c)"cinema",&%
)<&=r#c)"adre#a",&% telI<&=r#c)"telefon",&%,<0font%
<&#?lfilme="'!L!C. programare$id<cinema, programare$id<film, filme$titlu,
"
#?lfilme=#?lfilme D " filme$titlu<original, programare$#aptamina "12*
filme INN!1 L2IN "
#?lfilme=#?lfilme D " programare 2N filme$id<film = programare$id<film
+12U7 (3 "
#?lfilme=#?lfilme D " programare$id<cinema, programare$id<film,
filme$titlu, "
#?lfilme=#?lfilme D " filme$titlu<original, programare$#aptamina "
#?lfilme=#?lfilme D " -/;IN+ programare$id<cinema=" D r#c)"id<cinema",
#?lfilme=#?lfilme D " /N programare$#aptamina=CcurentaC"
#et r#f=conntemp$eEecute)#?lfilme,&%
<&if not r#f$eof then&%
<&do Bhile not r#f$eof &%
<tr%<td 9align="top"%
<a href="film$a#pHid<film=<&=r#f)"id<film",&%Dden<ora#=<&=den<ora#&%"%
<&=r#f)"titlu",&% )<&=r#f)"titlu<original",&% ,<0a%
<td 9align="top"%
<&#?lp="'!L!C. MprogramareN$Mid<filmN, MprogramareN$MprogramN,
MprogramareN$M#aptaminaN, "
#?lp=#?lp D " MprogramareN$Mid<cinemaN "12* programare 6-!1! "
#?lp=#?lp D " MprogramareN$M#aptaminaN=CcurentaC /nd MprogramareN$
Mid<cinemaN=" D r#c)"id<cinema",
#?lp=#?lp D " and MprogramareN$Mid<filmN=" D r#f)"id<film",
#et r#p=conntemp$eEecute)#?lp,&%
<&if not r#p$eof then&%
<&do Bhile not r#p$eof&%
<&=r#p)"program",&%<br%
<&r#p$mo9eneEt&%
<&loop&%
<&end if&%
<tr bgcolor="lightblue"%<td col#pan=K%
<&r#f$mo9eneEt&%
<&loop&%
<&end if&%
<&r#c$mo9eneEt&%
<&loop&%
<0table%
<&end if&%
<&end if&%
2#3#/ Pagina cu in"ormatii detaliate des%re un "ilm
Asa cu$ a$ spus pe titlul il$ului este pusa #iperlegatura la pagina cu
inor$atii detaliate despre il$. catre care se tri$ite *aribila idVil$ ce
identiica in $od unic il$ul. !aribila. iind tri$isa ca sir interogare. se
obtine olosind colectia Juer1string a obiectului Request.
id<film=re?ue#t$?uer8#tring)"id<film",
Pentru a aisa inor$atiile despre il$ul identiicat unic de idVil$.
trebuie sa interoga$ tabela (il$e si tabelele 8istributie si Actori. %o$enzile
Select se ala in sql1 si sql2.
<&#?l:="'elect A from "ilme Bhere id<film=" D id<film
#et r#:=conntemp$eEecute)#?l:,
#?l=="'!L!C. di#tributie$id<film, di#tributie$id<actor,
di#tributie$per#ona@, "
#?l==#?l= D " actori$nume<actor "12* actori INN!1 L2IN di#tributie "
#?l==#?l= D " 2N actori$id<actor = di#tributie$id<actor Bhere
di#tributie$id<film=" D id<film
#et r#==conntemp$eEecute)#?l=,&%
(olosind *ariabilele recordset rs1 si rs2 pute$ sa aisa$ toate
inor$tiile despre il$4 gen. productie. regizor. scenarist.s.a.$.d. Pentru ca
aisarea sa ie cit $ai ordonata se olosesc tabele /"-L.
<table Bidth=5F5%
<tr%<td bgcolor="lightgre8"%<font color="black" #i>e=O%
<&=r#:)"titlu",&% )<&=r#:)"titlu<original",&%,<0font%
<0table%
<table%
<&afi#="$$" D r#:)"afi#",&%
<tr%<td 9align="top"%<img #rc="<&=afi#&%"%
<td%<&=r#:)"#ubiect",&%
<0table%
<br%<br%
<table Bidth=O5G%
<tr%<td%+enI
<td%<&=r#:)"gen",&%
<tr%<td%upa un roman deI
<td%<&=r#:)"roman<de",&%
<tr%<td%urataI
<td%<&=r#:)"durata",&% minute
<tr%<td%Ca#a productieI
<td%<&=r#:)"produ#<de",&%
<tr%<td%irector filmI
<td%<&=r#:)"producator",&%
<tr%<td%1egieI
<td%<&=r#:)"regi>or",&%
<tr%<td%'cenariuI
<td%<&=r#:)"#cenari#t",&%
<tr%<td%ImagineI
<td%<&=r#:)"imagine",&%
<tr%<td%*u>icaI
<td%<&=r#:)"mu>ica",&%
<0table%
Pentru aisarea distributiei4 nue$ persona@ si nu$e actor se parcurge
*ariabila recordset rs2. ca $ai @os.
<&if not r#=$eof then&%
<table Bidth=5F5%
<tr%<td col#pan=K bgcolor="lightgre8"%<font
color="black"%i#tributie<0font%
<&do Bhile not r#=$eof&%
<tr%<td%<&=r#=)"per#ona@",&%<td%$$$<td%
<a href="actor$a#pHid<actor=<&=r#=)"id<actor",&%" target="neB"%<
&=r#=)"nume<actor",&%<a href%
<&r#=$mo9eneEt&%
<&loop&%
<0table%
<&end if&%
(il$ele dispun. in general si de o colectie de i$agini $e$orate in
tabela I$agini. Pentru aisarea lor se e&ecuta co$anda Select din *ariabila
sql3. care selecteaza i$aginile pentru il$ul identiicat de idVil$. Pentru
aisare se parcurge *ariabila recordset rs3 si se oloseste tag,ul /"-L QI-B
SR%R.
<&#?lK="#elect A from Imagini Bhere id<film=" D id<film
#et r#K=conntemp$eEecute)#?lK,&%
<&if not r#K$eof then&%
<table Bidth=5F5%
<tr%<td col#pan== bgcolor="lightgre8"%<font color="black"%Imagini din
film<0font%
<&do Bhile not r#K$eof&%
<&p="$$" D r#K)"cale<po>a",&%
<tr%<td%<img #rc="<&=p&%"%
<&r#K$mo9eneEt&%
<&if not r#K$eof then&%
<&p="$$" D r#K)"cale<po>a",&%
<td%<img #rc="<&=p&%"%
<&end if&%
<&if not r#K$eof then&%
<&r#K$mo9eneEt&%
<&end if&%
<&loop&%
<0table%
<&end if&%
2#3#* Pagina cu in"ormatii detaliate des%re un actor
La aisarea distributiei unui il$. pe nu$ele iecarui actor este
a$plasata o #iperlegatura care ne conduce in pagina actor.asp pentru a ala
date despre acesta.
Obtinerea *ariabilei idVactor tri$isa sub or$a unui sir interogare. se
ace tot cu colectia Juer1string a obiectului Request. !ariabila a@uta la
identiicarea unica a actorului. 8atele despre acesta se obtin din tabela Actori
cu co$anda Select din *ariabila sql1. <r$eaza apoi aisarea datelor 0 nu$e.
data nasterii. locul nasterii. biograie3 in or$a tabelara cu a@utorul obiectului
Recordset rs1.
<&id<actor=re?ue#t$?uer8#tring)"id<actor",
m8d#n="'N=bdcinema"
'et conntemp = 'er9er$Create2b@ect)"/2($Connection",
conntemp$2pen m8d#n&%
<&#?l:="'elect A from /ctori Bhere id<actor=" D id<actor
#et r#:=conntemp$eEecute)#?l:,&%
<center%
<table Bidth=5F5%
<tr%<td bgcolor="lightgre8" col#pan==%
<font color="black" #i>e=5%<&=r#:)"nume<actor",&%<0font%
<tr%<td%ata na#teriiI<td%<&=r#:)"data<na#t",&%
<tr%<td%Locul na#teriiI<td%<&=r#:)"locul<na#terii",&%
<tr%<td col#pan==%<&=r#:)"biografie",&%
<0table%
2#3#2 Pagina Filme
In aceasta pagina se aiseaza titlurile tuturor il$elor care ruleaza
oriunde in tara in sapata$ina curenta. Pentru iecare il$ se aiseaza titlul.
aisul si descrierea subiectului. Pentru a ace selectia inregistrarilor se e&ecuta
co$anda Select din *ariabila sql1. rezultatul depunindu,se in *ariabila
recordset rs1. Inor$atiile detaliate se obtin ur$ind #iperlegatura a$plasata
pe titlul il$ului. %o$anda Select oloseste optiunile Broup C1 si /a*ing.
<&m8d#n="'N=bdcinema"
'et conntemp = 'er9er$Create2b@ect)"/2($Connection",
conntemp$2pen m8d#n&%
<&#?l:="'!L!C. filme$id<film, filme$titlu, filme$titlu<original,
filme$afi#, "
#?l:=#?l: D " filme$#ubiect, programare$#aptamina "12* filme INN!1 L2IN
programare "
#?l:=#?l: D " 2N filme$id<film = programare$id<film +12U7 (3
filme$id<film, filme$titlu, "
#?l:=#?l: D " filme$titlu<original, filme$afi#, filme$#ubiect,
programare$#aptamina "
#?l:=#?l: D " -/;IN+ )))programare$#aptamina,=CcurentaC,, 21!1 (3
filme$titlu"
#et r#:=conntemp$eEecute)#?l:,&%
<&if not r#:$eof then&%
<table Bidth=5F5%
<&do Bhile not r#:$eof&%
<tr%<td col#pan==%
<a href="filmed$a#pHid<film=<&=r#:)"id<film",&%"%
<hK%<&=r#:)"titlu",&% ) <&=r#:)"titlu<original",&% ,<0hK%<0a%
<tr%<td 9align="top"%
<&afi#="$$" D r#:)"afi#",&%
<img #rc="<&=afi#&%"%
<td%<&=r#:)"#ubiect",&%
<&r#:$mo9eneEt&%
<&loop&%
<0table%
<&end if&%
2#3#3 Pagina Actori
Aiseaza lista alabetica cu nu$ele actorilor e&istenti in baza de date.
Aisarea se ace pe doua coloane pentru a ocupa $ai bine ereastra bro6ser,
ului cu inor$atie. Se interog#eaza tabela Actori. Inregistrarile sunt depuse in
*ariabila recordset rs1. 7u$ele iecarui actor este o #iperlegatura la aceeasi
pagina actori.asp catre care se tri$ite *ariabila idVactor. Asta insea$na ca
datele de detaliu despre actorul selectat se ac in aceeasi pagina sub lista cu
nu$ele actorilor. 8upa obtinerea *ariabilei idVactor cu a@utorul colectiei
Juer1string a obiectului Request se e&ecuta cea de a doua interogare din
script,ul de $ai @os care selecteaza din tabela Actori nu$ai inregistrarea
corespunzatoare actorului selectat.
<&m8d#n="'N=bdcinema"
'et conntemp = 'er9er$Create2b@ect)"/2($Connection",
conntemp$2pen m8d#n&%
<&#?l:="'elect A from /ctori order b8 nume<actor"
#et r#:=conntemp$eEecute)#?l:,&%
<center%
<&if not r#:$eof then&%
<table Bidth=5F5%
<&do Bhile not r#:$eof&%
<tr%<td%<font #i>e=O%
<a href="actori$a#pHid<actor=<&=r#:)"id<actor",&%"%
<&=r#:)"nume<actor",&%<0a%<0font%
<&r#:$mo9eneEt&%
<&if not r#:$eof then&%
<td%<font #i>e=O%
<a href="actori$a#pHid<actor=<&=r#:)"id<actor",&%"%
<&=r#:)"nume<actor",&%<0a%<0font%
<&end if&%
<&if not r#:$eof then&%
<&r#:$mo9eneEt&%
<&end if&%
<&loop&%
<0table%
<&end if&%
<07%
<p%
<&id<actor=re?ue#t$?uer8#tring)"id<actor",&%
<&if id<actor<%"" then&%
<&#?l:="'elect A from /ctori Bhere id<actor=" D id<actor
#et r#:=conntemp$eEecute)#?l:,&%
<center%
<table Bidth=5F5%
<tr%<td bgcolor="lightgre8" col#pan==%
<font color="black" #i>e=5%<&=r#:)"nume<actor",&%<0font%
<tr%<td%ata na#teriiI<td%<&=r#:)"data<na#t",&%
<tr%<td%Locul na#teriiI<td%<&=r#:)"locul<na#terii",&%
<tr%<td col#pan==%<&=r#:)"biografie",&%
<0table%
<&end if&%
2#3#I Pagina Arhiva "ilme
Aiseaza titlurile il$elor e&istente in ar#i*a. adica cele despre care
a*e$ inor$atii in baza de date si care nu ruleaza in nici un cine$atogra nici
in sapta$ina curenta nici in cea *iitoare. Pntru a ace selectia acestor il$e
trebuie e&ecutata co$anda Select $e$orat in *ariabila sql1 care contine si
subinterogare 0 Select in Select3. D selecteaza toate il$ele din tabela cu
acelasi nu$e si care nu igureaza in tabela Progra$are olosind operatorul not
in. Aisarea se ace in $odalitatea stiuta. (iecare titlu de il$ este o
#iperlegatura la pagina cu detalii.
<&m8d#n="'N=bdcinema"
'et conntemp = 'er9er$Create2b@ect)"/2($Connection",
conntemp$2pen m8d#n&%
<&#?l:="'!L!C. A from "ilme Bhere id<film not in ) 'elect id<film from
7rogramare,"
#et r#:=conntemp$eEecute)#?l:,&%
<&if not r#:$eof then&%
<table Bidth=5F5%
<&do Bhile not r#:$eof&%
<tr%<td col#pan==%
<a href="filmed$a#pHid<film=<&=r#:)"id<film",&%"%
<hK%<&=r#:)"titlu",&% ) <&=r#:)"titlu<original",&% ,<0hK%<0a%
<tr%<td 9align="top"%
<&afi#="$$" D r#:)"afi#",&%
<img #rc="<&=afi#&%"%
<td%<&=r#:)"#ubiect",&%
<&r#:$mo9eneEt&%
<&loop&%
<0table%
<&end if&%
In inal doresc sa $entionez ca pagina in *iitor are o realizare te#nica
ase$anatoare cu cea intitulata In cine$atograe.
Ca%#3 Conclu,ii
Aplicatia intitulata ]Gestiune si pre"entare on-line a programelor
cinematografelor din )omania^, reprezinta o colectie de pagini 6eb care
realizeaza doua unctiuni i$portante4
1. pune la dispozitia publicului larg o serie de inor$atii despre il$ele
are ruleaza in cine$atograele din di*erse orase
2. per$ite gestionarea inor$atiei din baza de date din care isi e&trage
site,ul continutul.
Inor$atiile oerite de site sunt grupate sub titlurile 4 Acasa. In
cine$atograe. In *iitor. (il$e. Actori. Ar#i*a.
-entionez ca in partea de ad$inistrare. accesul se ace nu$ai pentru
utilizatorii autorizati. care se identiica printr,un nu$e si o parola. Dste
i$piedicat accesul utilizatorilor in di*erse pagini daca acestia incearca sa
ocoleasca pagina de login. Asupra tabelelor din baza de date se
i$ple$enteaza operatiile traditionale pe baze de date4 adaugare. $odiicare si
stergere. cu *alidarea datelor pentru a pastra consistenta inor$atiei si a
i$piedica iesirea din aplicatie din cauza unei erori netratate.
Caza de date din spatele paginilor +eb este i$ple$entata in -S
Access 2OOO. iar accesul se ace prin inter$ediul O8C%. A*ind in *edere ca
a$ construit un site dina$ic. pentru realizarea aplicatiei a$ olosit /"-l
0/1per"e&t -ar2,up Language3 si ASP 0Acti*e Ser*er Pages3.
Luind in considerare aptul ca baza de date -S Access nu per$ite decit
un nu$ar de cinci utilizatori si$ultan o pri$a propunere de i$bunatatire se
reera la i$ple$etarea bazei de date in -S SJL Ser*er. care oera acilitati
supli$entare.
O alta propunere de i$bunatatire a lucrarii ar i co$pletarea site,ului cu
o *ersiune in li$ba engleza. pentru a putea i consultat si de catre persoane
din strainatate.
8e ase$enea. site,ul ar trebui sa dispuna pe *iitor de operatii si$ple
sau $ai a*ansate de cautare. a*ind in *edere ca baza de date poate atinge
di$ensiuni $edii. %autarea ar putea sa se aca dupa nu$ele unui actor.
regizor. dupa titlul il$ului. 8e ase$enea. cautarea ar trebui sa ie ine&acta.
per$itind regasirea unor inor$atii c#iar daca utilizatorul nu stie nu$ele
co$plet sau titlul co$plet si corect al il$ului.
8e ase$enea. in partea de ad$inistrare ar $ai putea i adaugata o
optiune care sa per$ita si gestionarea utilizatorilor4 adaugare sau stergere
utilizator de catre o persoana cu drepturi corespunzatoare. sau posibilitatea ca
iecare utilizator sa,si $odiice nu$ele sau parola cu care se log#eaza.
Bi$liogra"ie
1. Allen Cro6ne. Alison Calter 5 Access K5 Dditura "eora 1KK'
2. Ne Per2ins. Cr1an -organ 5 SJL ara proesor. in 14 zile.
Dditura "eora 1KKA
3. -icrosot Access 2OOO. Dditura "eora 2OOO
4. Siste$e de gestiune a bazelor de date si Proiectarea bazelor de
date 5 notite de curs
5. %o$ert electronic , notite de curs
'. Internet si Intranet 5 notite de curs
). Curdescu 8u$itru dan. Ionescu Augstin Iulian. Stanescu Liana 5
Caze de date Access Indru$ar de laborator "ipogaia
<ni*ersitatii din %raio*a 2OO2
A. S.+alt#er. N.le*ine , Progra$area in ASP pentru co$ert
electronic , Dditura "eora 2OOO
K. 666.cine$a.ro

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