Date post: | 06-Jul-2018 |
Category: |
Documents |
Upload: | malik-jagodic |
View: | 270 times |
Download: | 0 times |
of 68
8/18/2019 Visual Basic Script.pdf
1/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Program :WEBMASTERS
.cjelina............Razmatranje ASP tehnologije .................5 sati
.cjelina............VBScript na serverskoj strani.................20 sati.cjelina............ASP objekti i komponente......................40 sati
.cjelina............ACCESS , SQL .....................................15 sati
.cjelina............ASP i baze podataka..............................30 sati
.cjelina............Sigurnost podataka i ostalo....................10 sati
.cjelina Razmatranje ASP tehnologije
ASP tehnologija radi na Microsoftovim serverima. ASP je ustvari skupina tehnologija tj, u njega se mogu dodavati razneomponente. Nalazi se na serverskoj strani. Da bi koristili Active server pages na našem serveru moramo imati Microsofto
web server. Trenutno postoje samo dva - Internet Information Server (IIS) 3.0 ili noviji, i Personal Web Server, koji je u samo manja verzija IIS-a, a oba rade samo na Windowsima. Ako naš server koristi UNIX, za korištenje Active server pag
moramo koristiti posebne programe za obradu ASP stranica, koje proizvode neke druge firme, neovisno od Microsofta, nphilisoft.
Ako imamo IIS 3 ili noviji, da bi kreirali ASP stranicu, sve što trebamo napraviti je da stranici koja sadrži ASP skripte
odamo ekstenziju .asp. Server će tada sam znati da na takvoj stranici treba prvo izvršiti skripte prije nego se pošalje klijeAko ne pronađe nikakve skripte, stranicu će poslati nepromijenjenu. Iako bi bilo jednostavno svim stranicama na web siteromijeniti ekstenziju u .asp, stranice koje ne sadrže ASP skripte moraju ostati sa ekstenzijama .htm ili .html jer server sv
asp stranicu temeljito pretražuje u potrazi za skriptama, što oduzima procesorsko vrijeme.
edna od najvažnijih odlika ASP stranica je njihovo jednostavno povezivanje sa bazama podataka (MS SQL, Access, Oracnformix, ili bilo koja baza podataka koja podržava ODBC standard) i dinamičko ubacivanje podataka iz baze u HTMLtranice. To otvara razne napredne mogućnosti za upotrebu ASP-a, kao što su npr. Internet trgovine, site-ovi koji serilagođavaju pojedinom korisniku, sustavi za unos i izmjenu podataka preko Interneta itd. ASP je u neku ruku jedinstvenkriptni jezik, jer nam dopušta da slobodno biramo sintaksu u kojoj želimo programirati. Dva najpopularnija jezika u kojime pišu ASP skripte su VBScript i Jscript. Parseri za ta dva jezika su ugrađeni u IIS. Korištenjem dodatnih scriptingngine-a drugih firmi, možemo ASP skripte pisati i u PerlScript-u, REXX-u ili Python-u. ASP stranice se sastoje iz teks
HTML tagova i ASP naredbi. HTML tagovi se, kao što znamo, nalaze u zagradama oblika < … >, običan tekst je izjih, a ASP naredbe stavljamo u zagrade oblika . Te zagrade govore serveru kako njihov sadržaj ne ideorisniku već ga treba prvo izvršiti, a na njihovo mjesto uvrstiti izlazni rezultat skripte, što god on bio (izlazni rezu
može biti HTML, tekst, style sheet, javascript ili bilo što što standardni browser razumije).
ASP skripte sadrže naredbe VBScript-a, njegove varijable, funkcije i procedure, kao i neke stvari svojstvene samo ASP-uao što su funkcije za rad s datumima, pretprocesorske direktive, i ncl ude naredbe ili ActiveX i ugrađeni objekti.
Kada klijent zatraži neku URL adresu, on šalje request . Request se sastoji od :
• Informacija o URL tj. IP adresi zadanog servera• Informaciji o browseru klijenta tj. Tipu browsera
8/18/2019 Visual Basic Script.pdf
2/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
• Informaciji klijenta tj. o lokaciji i IP adresiRequest se provodi preko glavnog TCP/IP protokola. Da bi se klijent mogao sporazumjeti sa
erverom, on mora poslati ispravno napisan request. Nakon toga server tako dugo vrti petlju, dok ne ispuequest, i čeka za novi request.
Građa URL adrese :
Npr: http://www.yahoo.com/shoping/show.asp?ID=234&ID2=235
http:// - protokolwww - host nameyahoo - enterprise domain namecom - topic level domain name (domena)shoping - virtualni direktorijshow.asp - datoteka? - razdvaja parametre od datotekeID=234&ID2=235 - tokini (parametri)
Što server radi nakon requesta ? 1. svaku adresu će pretvoriti u fizičku adresu svog servera npr: c:\ine\co2. ako ne pronađe datoteku izbacuje 404Error 3. pregleda da li je dozvoljen pristup tim podacima Kako server procesira traženu datoteku ?
- datoteke pronalazi po extenzijama u registriju (Microsoft)- UNIX i ostali se ne oslanjaju na registri, nego na listu datoteka MIME type formata(html,
htm, asp, php....)- Za gif, jpg, wav, mid....je određena neka akcija- Za datoteke tima exe, com, zip...nudi DOWNLOAD
Response koji server šalje klijentu sastoji se od glave i tijela (head i body)
• Body – sadržaj stranice• Head – cookie, dužina vremena prepoznavanja, redirekcija, MIME type lista
Server i klijent moraju imati iste MIME type liste i plug-inovaKlijentov browser pročita response, utvrđuje datoteku, te počinje generirati html dokument.
HTML tagovi opisuju kako prikazati sadržaj, dok XML tagovi prikazuju koji je zadržaj.
SERVERI:
I.S.A.P.I. – Internet Server Aplication Programming Interface
1 Filteri- zaštita datoteka(Firewall) ---prije requesta2.Aplikacije – ASP engine – poslije requesta
IIS – web server
http://www.yahoo.com/shoping/show.asp?ID=234&ID2=235http://www.yahoo.com/shoping/show.asp?ID=234&ID2=235
8/18/2019 Visual Basic Script.pdf
3/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
- u sebi sadrži i filtere i aplikaci
. cjelina VBScript
- scripta se piše unutar tagova
head>script languge=''VBScript''>
!- -
kod//- ->
/script>
VBScript se sastoji od:
Varijable, Nizovi i Objekti
Varijable:
A=10 -> a je 10
Nizovi :
DIM B(4)
B(4) je ime niza i rezervirano je 5 mjesta u nizu: B(0),B(1),B(2),B(3),B(4).
Objekti:
Set Rs=CreateObject(''ADODB.Recordset'')
Set – metoda za stvaranje objekataRs – ime objekta
Primjeri varijabli i nizova:ht ml >head>
8/18/2019 Visual Basic Script.pdf
4/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
end sub
//-->
input type=button name=button1 value="Klikni me" >
ROCEDURE:
rocedure počinju sa sub , a zavr šavaj u sa end sub
Npr : sub window_onload()Msgbox “Dobro došli ! “
End sub
UNKCIJE:unkcije počinju sa function, a zavr šavaj u sa end function
Npr:ht ml >head>
script language="vbscript">
Control flow
lementi grananja
Naredba 1
Naredba 2
8/18/2019 Visual Basic Script.pdf
5/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
If...Then...Else
lok primjer :
f Thenseqence1
lsesequence2
nd if
i if Then naredba -- nema end if
i if Then(sequenca1)
elseif Then(sequenca2)
.....else
(sequencaN)nd if
Primjer 1:
ht ml >head>script language="vbscript">
8/18/2019 Visual Basic Script.pdf
6/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
sub zbrojit4.value=CInt(t1.value)+CInt(t3.value)end sub
sub oduzmit4.value=CInt(t1.value)-CInt(t3.value)end sub
sub pomnozit4.value=CInt(t1.value)*CInt(t3.value)end sub
sub podijelit4.value=CInt(t1.value)/CInt(t3.value)end sub
//-->
A   input type=text
name="t1" size=10> 
   B  input type=text
name="t3" size=10> =  input type=text
name="t4">
rimjer 2:
ht ml >head>
script language="vbscript">
8/18/2019 Visual Basic Script.pdf
7/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
t8.value="Dovoljan"elseif (x>=2.5) and (x=3.5) and (x4.5) thent8.value="Odličan"
end ifend if
end sub
sub pro()
a=CInt(t1.value)b=CInt(t2.value )c=CInt(t3.value )d =CInt(t4.value )e=CInt(t5.value)suma=(a+ b+c+d +e)/5t7.value=suma
end sub//-->
t r > Dr eamweaver t d>
t r > Fl ash
J avaScr i pt
Phot oshop
b>HTML
t abl e>t r >
Pr osj ek Uspj eh
Select Case
luži za ispitivanje neke varijable pomoću ključnih riječi> blok za ispitivanje uvjeta
Select Case Case -ako je varijabla 1 pokreće naredbu1
(sequenca1)
Case (sequenca2).....
Case else
(sequencaN)End Select
Načini ispitivanja text boxova :
- if ime_textboxa.value='''' Then
8/18/2019 Visual Basic Script.pdf
8/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
- Len (ime_textboxa.value)=0 Then- ime_textboxa.value=vbNullString Then
Ulazni upit :
Varijabla=InputBox (''Unesite ime'',''Unos imena'')Primjer:
Sub window_onloada=Inputbox(''Unesite Ime'', Unos imena'')Msgbox ''Dobro došli gospodine/gospođo : '' & a
End sub
Kako upisati neku skriptu unutar html-a bez text boxa ?
tml >head>
script language="vbscript">
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PETLJE
For…Next
or varijabla=poč. vrijednost To završna vrijednost
(sequenca)Next -kraj petlje
rimjer 1 :
head>
script language=”vbscript”>
8/18/2019 Visual Basic Script.pdf
9/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
end sub
//
input type=”button” value=”Proba” name=”gumb”>
rimjer 2:
ht ml >head>
script language="vbscript">
While
hile ( sequenca)
end
rimjer:
ht ml >head>
script language="vbscript">
8/18/2019 Visual Basic Script.pdf
10/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Do..Loop
o( sequenca)oop Until
For each…Next
or each a in b( sequenca)
ext
= neodređena varijabla koja prolazi kroz niz b i postaje određena
= ime nizar i mj er :
f or each a i n bdocument . wri t e a &
"
"
next
Podtipovi varijabli
Osnovni fleksibilan tip varijabli se zove VARIANT.
Podtipovi :
Integer Cint Long CLng
Currency Ccur Single CSng Duble CDbl Date CDate Date, time
Boolean Cbool True, falseString CStr Object / Error / Byte Cbyte
Kako ispi tati varijable ?
Naredba za takve slučajeve : varType(varijabla koju ispitujemo)
8/18/2019 Visual Basic Script.pdf
11/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Npr:
If varType(var.koj.isp.)=8 Then
Svaka varijabla koju ispitujemo ima svoju znakovnu vrijednost, tako, ako je 8, onda je string, a ako je 7, oe datum itd.
The VarType function returns the following values:
Constant Value Description
vbEmpty 0 Empty (uninitialized)
vbNull 1 Null (no valid data)
vbInteger 2 Integer
vbLong 3 Long integer
vbSingle 4 Single-precision floating-point number
vbDouble 5 Double-precision floating-point number
vbCurrency 6 Currency
vbDate 7 Date
vbString 8 String
vbObject 9 Automation object
vbError 10 Error
vbBoolean 11 Boolean
vbVariant 12 Variant (used only with arrays of Variants)
vbDataObject 13 A data- access object
vbByte 17 Byte
vbArray 8192 Array
STRINGOVI
Stringovi su textualni tip podataka (niz znakova)
Vrste :Lenght Len(var) Broj znakova (dužina riječi)
http://tesla.vtszg.hr/~student/radovi/informatika/My%20Documents/WINDOWSDesktopSkripteVBScriptMS%20VBScript%20documentation1.htm#defEmptyhttp://tesla.vtszg.hr/~student/radovi/informatika/My%20Documents/WINDOWSDesktopSkripteVBScriptMS%20VBScript%20documentation1.htm#defEmptyhttp://tesla.vtszg.hr/~student/radovi/informatika/My%20Documents/WINDOWSDesktopSkripteVBScriptMS%20VBScript%20documentation1.htm#defNullhttp://tesla.vtszg.hr/~student/radovi/informatika/My%20Documents/WINDOWSDesktopSkripteVBScriptMS%20VBScript%20documentation1.htm#defOLEAutomationObjecthttp://tesla.vtszg.hr/~student/radovi/informatika/My%20Documents/WINDOWSDesktopSkripteVBScriptMS%20VBScript%20documentation1.htm#defOLEAutomationObjecthttp://tesla.vtszg.hr/~student/radovi/informatika/My%20Documents/WINDOWSDesktopSkripteVBScriptMS%20VBScript%20documentation1.htm#defNullhttp://tesla.vtszg.hr/~student/radovi/informatika/My%20Documents/WINDOWSDesktopSkripteVBScriptMS%20VBScript%20documentation1.htm#defEmpty
8/18/2019 Visual Basic Script.pdf
12/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Lower Case Lcase(var) Ispisuje riječ malim slovima
Uper Case Ucase(var) Ispisuje riječ malim slovima
Left Left(var) Pretražuje riječ od lijeve strane
Right Right(var) -||- od desne strane
Middle> 1.parametar-string s kojimradimo, 2. parametar-pozicija odakleuzimamo, 3.parametar – broj znakovakoliko uzimamo
Mid(var) -||- od sredine
Replace (varijabla,''što'',''u što'',
pozicija od kojeg mjesta, kolikopromjena(ako je –1, onda mijenja sveriječi), vrste traženja
0- binarno1- tekstualno2- baza podataka
Replace() Jedan dio stringa zamjeni s drugim
StrReverse StrReverse(var) Okreće riječi naopako
String String(koliko ponavljanja, ascii
kod )
Više puta ispisuje slovo koje smozadali ascii kodom
Asc ASC() Traženje ascii kodova: A->65
CHR CHR() Obrnuto od ascii 65->A
SPACESpace()
Broj razmaka u msgboxu
Trim TRIM() Izbacuje razmake sa svih strana
Ltrim Ltrim() Izbacuje razmake sa lijeve strane
Rtrim Rtrim() Izbacuje razmake sa desne strane
Lower Bound Lbound(niz) Vraća najniži index u nizu
Uper Bound Ubound(niz) Vraća najviši index u nizu
a ostalo pogledati VBScript dokumentaciju.
Primjer 1 :
ht ml >head>
script language="vbscript">
8/18/2019 Visual Basic Script.pdf
13/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
end sub
//-->
rimjer 2:
ht ml >
head>script language="vbscript">
Pretraživanje stringova
nStr(pozicija,gdje,što, koja komparacija(0-binarno, 1-textualno, 2- baza podataka)
nStrRev(gdje,što,pozicija(-1),koja komparacija) - isto kao InStr, samo pretražuje Odozada
Primjer:
ht ml >head>
script language="vbscript">
8/18/2019 Visual Basic Script.pdf
14/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
"
document.write " Trazimo na kojem mjestu pocinje rijec dosli
odozada = " &nStrRev(a,"dosli",-1,1)
& "
"
end sub//-->
Nizovi stringa
plit- podijeli
Split(a,'';'')
a – varijabla,tj.ime niza koji razdvajamo
razdvaja varijablu koja sadrži neko nabrajanje razdvojeno sa ; u niz
Primjer:ht ml >head>
script language="vbscript">
rimjer 2:HTML>TI TLE>Curr ent Dat e/ Ti me 2HEAD>
script language=vbscript>!--
sub b1_onclick()
aza="Drazen;Davor;Nenad;Darko;Tomislav;Mario;Pero;Jura;Stevo;Branko;Branimir;Kreso;Bojan;Mladen
unos=t1.value
imena = split( baza,";")
8/18/2019 Visual Basic Script.pdf
15/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
for each ime in imena
if ucase(ime)=ucase(unos) thenfound = true
exit forelse
found = false
end ifnext
if found thent2.value = "Osoba postoji !"
elset2.value = "Osoba ne postoji !"end if
end sub/-->
/ head>body bgcol or=bl ack t ext=whi t e onl oad="t 1. f
ocus" >br >
center >t abl e wi dt h=50% hei ght =20% bgcol or =bl
ue border =2 bor der col or l i ght ="#c0c0c0"
bor der col or dar k="#505050"t r >Unesi t e i me : t d al
i gn=cent er>input
name="t1" type="text" value="">  ;input
type="button" name=b1 value="Provjeri !">/ t d>Pot vr da
!
input name="t2" type="text" value="" >/ t
d>
/ cent er>/ body>/ html >
Funkci j e Array,Join,Filter
Join
Spajanje slova(riječi), tj redove u rečenicu, tj niz u rečenicu
Var=Join(var1,'','')Var1- određena varijabla,tj niz
Array
- funkcija za stvaranje niza
Primjer array i join :
ht ml >head>
script language="vbscript">
8/18/2019 Visual Basic Script.pdf
16/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
a= array ( "Nenad","Pero","Jura","Mloaden")
for each x in adocument.write x & "
"
next
b = join( a,", ")
document.write "" & b
end sub//-->
/ head>
Filter
- iz niza izdvaja samo neke elemente, i od toga odvojenoga niza stvara novi niz- var=Filter(niz,''što'',true,komparacija)
Primjer 1:
ht ml >head>
script language="vbscript">
VARIANTI
ypename – javit će ime stringasArray – da l i j e var i j abl a ni zsNumeric – da l i j e var i j abl a br ojsDate – da l i j e var i j abl a dat umsEmpty – da l i j e pol j e i l i neka var i j abl a pr azna
8/18/2019 Visual Basic Script.pdf
17/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
sNull – pose no st an e a a e po e neupot r e vo-različito od empty- tj. Polje nije upotrebljivo
rimjer :
ht ml >head>
script language="vbscript">
/ head>
Dinamički niz
8/18/2019 Visual Basic Script.pdf
18/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Dinamički niz je niz u kojem u tijeku izvođenja programa mijenjamo broj elemenata.
DIM(6) – fiksni niz od 6 elemenataDIM() - fleksibilan niz sa mogućom promjenom
ReDim Preserve var(broj elemenata u varijabli)ReDim Preserve a(Ubaund(a)+1) ->trenutni broj elemenata kojem dodajeno još jedan
Primjer:ht ml >head>
script language="vbscript">
3. cjelina ASP
act i ve ser ver pagesa r ad sa ASP- om sl uži asp. dl l
OM – common obj ect model
OBJEKTI
ASP sadrži pet ugrađenih objekata. To su :
Response, Request, Application, Session i Server .
vaki od njih ima svoje odlike koje svrstavamo u četiri grupe: Methods, Properties, Events i Collections. Methods su ugrađeneunkcije koje pozivamo kao I meObj ekta. Met hod(par amet r i ) . Properties su varijable posebne za svaki objekt. Njima pristupamo na sačin: I meObj ekt a. Propert y = neka_vrijednost . Events su događaji koji pokreću određene procedure. Njih sadrže samo objektipplication i Session, a te procedure se pišu u posebnoj datoteci gl obal . asa o kojoj će biti riječi u posebnom odjeljku. Collections su, kao
m i samo ime kaže, kolekcije varijabli kojima određeni objekt može pristupati. Tim varijablama se pristupa ovako:
meObj ekta. Col l ect i on( "Varijabla" ) .
Svojstva (properties)
Događaji (events)
8/18/2019 Visual Basic Script.pdf
19/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
ostoje 7 vrsta objekata:
. Response - object s kojim server nešto vraća klijentu
. Request - object s kojim klijent šalje upit serveru
. Server - uz njega upravljamo serverom – pregled IP adresa, browser ..
. Aplication - služi za upravljanje aplikacijama od connest do disconnect
. Session - služi za spremanje podatka koji su došli sa klijenta
. ASPError - govori o nastalim greškama
. ObjectContext -služi za upravljanje transakcijama I kreiranje objekata kroz
Microsoft Transaction server
ASP datoteka je textualna datoteka sa svim svojstvima html dokumenta, ali različite ekstenzije i ima mogučnostiometanja serverskih skripti.
Da bismo na stranici definirali da će glavni skriptni jezik biti vbscript moramo prije upisati%@language=’’VBScript’’ %>
erverski kod ASP-a :
%
kod %>
rimjeri:
ht ml >head>
Unt i t l ed
/ head>
body>
%=a%> može se upi sat i
i l i
/ body>/ html >
ako prikazati nešto sa servera?
% response.write "Srever time =" &time
&"
"
esponse.write "Server date =" &date &"
" &""
response.write "Server port = " & request.serverVariables("SERVER_PORT")
esponse.write "Server ime = " & request.serverVariables("SERVER_NAME")
response.write "IP adresa servera=" & request.serverVariables("LOCAL_ADDR")
8/18/2019 Visual Basic Script.pdf
20/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
response.write "Vrsta browsera prikljucenog serveru = " &
request.serverVariables("HTTP_USER_AGENT")
esponse.write "IP adresa klijenta = " & request.serverVariables("REMOTE_ADDR") %>
Refreširanje stranice :
pi še se i zvan ht ml - a
redi rect na kl i j entu% @Language="vbscr i pt "%>%
esponse.addheader "Refresh","5;url=http://localhost/mario/zadatak1.asp"
%>
ako izraditi redirect na dr. stranicu ?
metoda redi r ect na ser ver uprvo se provrt i ci j el a skr i pta, onda i de redi rekci j a
ht ml >head>
efiniranje nakon koliko vremena se stranica mora ponovno downloadirati !
% @Language="vbscr i pt "%>
% response.expires=1
esponse.cachecontrol="public"
def i ni r a nakon kol i o mi nut a se st r ani ca mor a ponovno downl oadat i da bi se ref r esi r al i podaci na str anipr oxy ser ver i cachi r aj u st r ani ce, t ako da ne mogu cachi r at i kor i st i mo
esponse.cachecontrol="private"
ako st avi mo "publ i c" onda se st r ani ce cachi r aj u kod kl i j ent a
%>
Cookies
Cookeis služe za pohranjivanje podataka u tekstualnom obliku.
Specifikacije cookia:
1. cookie je specifičan za pojedine stranice—što znači, da bi vratili cookie serveru, moramo upisatitočnu URL adresu.
2. sigurnost—uvjet je da server I domena pašu. https:// protocol je stalno pod enkripcijom (sigurnostpodataka, slovo ili riječ se zamjenjuje nekim drugim znakom).
3. expiration—može se zadati rok trajanja, a ako nije zadan rok trajanja, onda vrijedi samo tijekomsession.
4. text file – nije za passworde, upise kreditnih kartica,……
8/18/2019 Visual Basic Script.pdf
21/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Da bismo mogli raditi sa cookiima moramo imati session .Session je vezan uz browser. Koliko imamo otvorenih browsera, toliko imamo sessiona, to znači da s
browser ima svoj session. Početak sessiona počinje kada browser zatraži stranicu I traje :
a) dok se browser ne zatvori
b) session je zaključen u koduPočetak.. session.Završetak
mamo dvije vrste potreba da se sačuvaju podaci :
1. privremene pr irode – varijable, nizovi idr. u VBScriptu. Kada ASP prelazi u html, podaci se gu2. permanentno :
a) unutar session
b) između session
Cookie je dio response objekta.
Da bi klijent I server mogli komunicirati, server za vrijeme sessiona sebi radi jedan ID preko kojegregledava, da li su još u vezi.
Ako želimo da se skripta koju je klijent zatražio cijela izvrti, pa pošalje na html, moramo upsati na početku
sp skripte response.buffer=true , a ako stavimo da je false, onda će skidati malo po malo.
Postoje dvije vrste cookia, I kako ih zadati :
1. Jednostruki (Top-level cookies) --- response.cookies(“Mario” )=” 123” , gdje su Mario I 123proizvoljne vrijednosti
Primjer:
2. Višerazinski (mult ilevel cookies) ---
CookiesPohrana u bazu podatakaTekstualne datoteke
CookiesSession
8/18/2019 Visual Basic Script.pdf
22/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
response.cookies(“voditelj”)(“ime”)=”Tomislav”
response.cookies(“voditelj” )(“ prezime”)=” Ocvirek” itd.
Primjer:%esponse. buf f er=t r ue
esponse. Cooki es( "i me") ( "I me") ="Mar i o"esponse. Cooki es( "pr ezi me") ( "Pr ezi me") ="Ozvat i c"esponse. Cooki es( "t el ef on") ( "Tel ef on") ="012726015"
=r equest . cooki es( "I me")=r equest . cooki es( "Pr ezi me")=r equest . cooki es( "Tel ef on")
esponse. wr i t e a &"
"esponse. wr i t e b &"
"esponse. wr i t e c &"
"
%>
Brisanje cookia :
Response.cookies(“ Mario” )=” ”
Čitanje cookia:
a = request.cookies(“Mario” )
response.write “ Cookie = “ & a
Pregled I ispis svih cookia :
rimjer:
%esponse. buf f er=t r ue
esponse. Cooki es( "i me") ( "I me") ="Mar i o"esponse. Cooki es( "pr ezi me") ( "Pr ezi me") ="Ozvat i c"esponse. Cooki es( "t el ef on") ( "Tel ef on") ="012726015"
or each x i n request . cooki esr esponse. wr i t e x & " =
" & r equest . cooki es( x) & "
"
next%>
Naredba za isčitavanje (ID) parametara:
token ne moramo nazvati ID, možemo ga nazvati proizvoljno .
Request.QueryString (“ime tokena” )
Primjer kako iz html-a pozvati asp skriptu pomoću tokena :
Html stranica:
8/18/2019 Visual Basic Script.pdf
23/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Unt i t l ed
Li nk 1
Li nk 2
Li nk 3
zad4. asp st r ani ca :
Zadavanje cookiu vrijeme trajanja :
Response.cookies(“Mario”).expires=#28/09/2001#
Zadavanje cookia samo za index stranicu:
Response.cookies(“Mario”).domain=http://www.yahho.com/
Unutar kojeg foldera će vrijediti cookie:
Response.cookies(“Mario” ).path=” /baza” ---- unutar foldera
Response.cookies(“ Mario” ).path=” /” -- unutar cijelog sitea
Forme
U ovome primjeru ćemo prikazati kako html stranicu preko forme povezati sa asp skriptom, tako da
skripta izbaci podatke koji su upisani u formularu ,a aako ima koja greška da je ispiše. Html stranica :
http://www.yahho.com/http://www.yahho.com/
8/18/2019 Visual Basic Script.pdf
24/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Unesi t e i me:
Unesi t e pr ezi meMuski Zenski
Validacija(provjera) formulara
Html stranica - formular
Polja označena s * su obavezna!
Ime*:
Prezime*:
e-mail*:
Pasword*:
Ponovi pasword*:
Spol: M Ž
Država: Država....
Grad:
Zip code:
Područje interesa: IT
Software
Hardware
Internet
Music
Hoby
Knjige
Sport
Kako ste doznali o nama:
Od..........
Kako ste doznali o nama:
Država....
Od..........
8/18/2019 Visual Basic Script.pdf
25/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
asp stranica – kako ispitati sva polja da li su pravilno unesena :
% @Language="VBScr i pt "%>%
'ovim if pitanjem pitamo da li je klijent poslao formular metodom get ili post. Ako je get, onda mu skripta ne obrađuje formular, a ako je post,onda zove proceduru validate, koja dalje nastavlja pregledavati da li suostala polja ispravno ispunjena.
I f request.ServerVariables("REQUEST_METHOD")="POST" Then
Call Validate()
El se
Response. Wr i t e "Access deni ed! "End I f
' procedura koja obrađuje daljnje podatke iz formulara' success je niz koji postavljamo da je true(polja su pravilnounesena)
' ako nešto nije uneseno, stavimo succes=false i server klijentuvraća poruku da nije nešto upisao
Sub Validate()
Di m Success
Success=Tr ueFN=Request . For m( " I me")LN=Request . For m( "Pr ezi me")emai l =Request . Form( "emai l " )psw1=Request . For m( "passwor d1")psw2=Request . For m( "passwor d2")Request . Form( "check")
I f Len( FN) =0 ThenResponse. Wr i t e "Ni st e unj el i i me! "Success=Fal se
End I f
I f Len( LN) =0 ThenResponse. Wr i t e "Ni st e unj el i pr ezi me! "Success=Fal se
End I f
' emailcheck je funkcija koju pozivamo da provjeri da li je
mail pravilno unesen
I f Emai l Check(emai l ) =Fal se ThenResponse. Wr i t e "Pogr ešna e- mai l adr esa! "
End I f
' passcheck je funkcija koju pozivamo da provjeri da li je password pravilno unseen
I f PassCheck( psw1, psw2)=Fal se ThenResponse. Wr i t e "Pasword mora sadržavat i naj manj e 5 znakova, a od t oga
naj manj e j edno vel i ko sl ovo i j edan br oj ! "End I f
Pošalji Obriši
8/18/2019 Visual Basic Script.pdf
26/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
' ispisuje sa forme za što se kljient interesira, tj. koje jecheckboxove ukljucio
I f Request.Form("check").Count=0 ThenSucceses=Fal se
El seFor i = 1 To Request . For m( "check" ) . Count
Response. Wr i t e Request . Form( "check") ( i ) & "
"Next
End I f
End Sub
'adr je zamjena za request.form("mail")Validacija e-mail adrese
‘ Zamislimo da je e-mail ispravno unsen(true), kasnije mu postavimo false za svaklučaj, ako je krivo unesen
Function EmailCheck(adr)Emai l Check=Tr ue
Varijabla valid sadrži sve znakove koji se smiju nalaziti u e-mail adresi
val i d="abcdef ghi j kl mnopqr st uvwxyz1234567890@. _ - "
'adr je zamjena za request.form("mail")
For i = 1 To Len( adr )I f I nSt r ( 1, val i d, LCase( Mi d( adr , i , 1) ) ) =0 Then
Emai l Check=Fal seExi t Functi onEnd I f
Next
'Vraća poziciju na kojoj se nalazi @
m=I nSt r ( 1, adr , "@")I f m0 Then
l et t =l et t +1Exi t For
End I f NextI f l et t =0 Then Exi t Functi on
For i = 1 To Len( psw1)I f I nSt r ( 1, num, LCase( Mi d( psw1, i , 1) ) ) >0 Then
num=num+1Exi t For
End I f NextI f num=0 Then Exi t Funct i on
I f psw1psw2 Then Exi t Funct i on
End Function%>
8/18/2019 Visual Basic Script.pdf
27/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Session
- obj ect koj i se kr ei r a u t r enut ku kada kl i j ent zat r aži sa br owserneki I D i l i i nf or maci j u.
- Sl uži za pohr anu podat aka ( i nf or maci j a za vr i j eme sessi ona- On j e t i pa var i ant
ession(“naziv”)=vrijednost
Vrijednost- var i j abl a, s t r i ng, ni z, obj ect
ession se gubi :
- kada se browser zat vor i- kada browser ne prihvaća session cookie- kada j e i st ekl a
aust avl j anj e sessi ona : Session.Abandon
okazi vanj e kol i ko neka f or ma sadr ži bytova:
Request.TotalBytes
alidacija prethodnog formulara pomoću sessiona :
% @Language="VBScr i pt "%>%Response. Buf f er=True
I f r equest . Ser verVar i abl es( "REQUEST_METHOD") ="POST" ThenCal l Val i dat e( )
El seResponse. Wr i t e "Access deni ed! "
End I f
Sub Val i dat e( )Di m SuccessSuccess=Tr ue
FN=Request . For m( " I me")LN=Request . For m( "Pr ezi me")emai l =Request . Form( "emai l " )psw1=Request . For m( "passwor d1")psw2=Request . For m( "passwor d2")Request . Form( "check")
I f Len( FN) =0 ThenResponse. Wr i t e "Ni st e unj el i i me! "Success=Fal se
El seSessi on( " I me") =FN
End I f
I f Len( LN) =0 ThenResponse. Wr i t e "Ni st e unj el i pr ezi me! "Success=Fal se
El seSessi on( "Prezi me") =LN
End I f
I f Emai l Check(emai l ) =Fal se ThenResponse. Wr i t e "Pogr ešna e- mai l adr esa! "El se
Sessi on( "E- mai l ") =emai lEnd I f
I f PassCheck( psw1, psw2)=Fal se ThenResponse. Wr i t e "Pasword mora sadr žavat i naj manj e 5 znakova, a od t oga naj manj e j edno vel i ko sl o
j edan bro j !"El se
Sess i on( "Password") =psw1End I f
I f Request . Form( "check") . Count=0 ThenSucceses=Fal seResponse.Write "Odaberite najmanje jedno područje interesa!"
El seDi m i nt r s ( )br = Request . Form( "check") . Count
8/18/2019 Visual Basic Script.pdf
28/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
ReDi m i nt r s rFor i = 1 To br
i nt r s( i ) =Request . For m( "check") ( i )NextSessi on( "I nt er ests") =i nt r s
End I f
Sessi on( "Spol " ) =Request . Form( "gender")Sessi on( "Dr žava") =Request . For m( "l i st a1")Sessi on( "Gr ad" ) =Request . Form( "grad")Sessi on( "Zi p") =Request . For m( "z i p")Sessi on( "od") =Request . For m( "l i st a2")Sessi on( "Koment ar ") =Request . Form( "koment ar" )
Response. Redi r ect "f or m_i spi si . zadat ak. asp"
End Sub
Funct i on Emai l Check( adr ) ' Val i daci j a e- mai l adr eseEmai l Check=Tr ue
val i d="abcdef ghi j kl mnopqr st uvwxyz1234567890@. _ - " ' Vari j abl a val i d sadr ži sve znakove koj i se smi jal azi t i u e- mai l adresi
For i = 1 To Len( adr )I f I nSt r ( 1, val i d, LCase( Mi d( adr , i , 1) ) ) =0 Then
Emai l Check=Fal seExi t Functi on
End I f Next
m=InStr(1, adr, "@") 'Vraća poziciju na kojoj se nalazi @I f m0 Then
l et t =l et t +1Exi t For
End I f NextI f l et t =0 Then Exi t Functi on
For i = 1 To Len( psw1)
I f I nSt r ( 1, num, LCase( Mi d( psw1, i , 1) ) ) >0 Thennum=num+1Exi t For
End I f NextI f num=0 Then Exi t Funct i on
I f psw1psw2 Then Exi t Funct i on
End Funct i on
%>
Ispisivanje sadržaja ispunjenog formulara
% @Language="VBScr i pt "%>%
Response.Write "
Čestitamo"Response. Wr i t e "
Regi st r aci j a j e bi l a uspj ešna"Response. Wr i t e "J esu l
i ovo vaši podaci
"Response. Wr i t e Sess i on( " I me") & "
"Response. Wr i t e Sessi on( "Prezi me") & "
"Response. Wr i t e Sessi on( "E- mai l ") & "
"Response. Wr i t e Sess i on( "Password") & "
"Response. Wr i t e Sessi on( "Spol " ) & "
"Response. Wr i t e Sess i on( "Dr žava") & "
"Response. Wr i t e Sess i on( "Gr ad" ) & "
"Response. Wr i t e Sessi on( "Zi p") & "
"
i nt r s=Sessi on( "I nt er est s")For i = LBound( i nt r s) To UBound( i nt r s)
Response. Wr i t e i nt r s( i ) & "
"Next
Response. Wr i t e Sessi on( "od") & "
"Response. Wr i t e Sess i on( "Koment ar" ) & ""
8/18/2019 Visual Basic Script.pdf
29/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
For Each C I n Sessi on. Cont ent si t m=Sessi on( C)I f VarType( i t m) >=vbAr r ay Then
Response. Wr i t e "I nteresi : "For i = LBound( i t m) To UBound( i t m)
Response. Wr i t e i t m( i ) & "
"Next
El seResponse. Wr i t e "" & C & " : "Response. Wr i t e
i t m & "
"
End I f Next
%>
Objekt : Application
- t r aj e dok j e ser ver upal j en, a ser ver j e upal j en 24h na dan- može pohranjivati razičite vrijednosti
ohranjivanje vrijednosti:
Application.Value(“naziv varijable”)=vrijednost
Čitanje vrijednosti:
Var=Application.Value(“naziv”)
risanje vrijednosti :
Application.Value(“naziv”)=empty
Da bismo za svakog klijenta napravili poseban session, tj. pristup stranicama moramo upisati unutar kod
Appl ication.Lock
promjena koja se događa na stranici (counter…)
Appl ication.UnLock
Kod samog čitanja ne radimo zaključavanje, nego samo ako se kod pristupa klijenta nešto mora promjeni
odati.
Prije svakog pristupa asp datoteci, server prvo pristupa datoteci po imenu Global.asa, da bi vidio, da li imto za izvršiti prije pristupa stranici, jer u samoj asp stranici može biti nešto što je potrebno za izvršavanje
8/18/2019 Visual Basic Script.pdf
30/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
rije pokretanja.
Global.asa – je pisana VBScriptom.Mora uvijek biti u glavnom root direktoriju
kod
Kod: procedura koja počinje sa:
Sub Session_OnStart Sub Session_OnEnd
naredbe naredbeEnd Sub End Sub
Sub Application_OnStart Sub Application_OnEndnaredbe naredbe
End Sub End Sub
rimjer: Counter- global.asa
global.asa mora biti u root direktorijuto je prva datoteka kojoj server pristupa, prije nego pristupi straniciov je samo primjer, inace sluzi za pregledavanje cookiana klijentovoj strani, pa ako klijent nema cookie, on pokrece proceduru, kojaodmah salje cookie klijentu ......itd
scr i pt l anguage="vbscri pt " r unat="ser ver ">
ub sessi on_onst art
f i sempty( appl i cat i on. val ue( "caunt er " ) ) t henappl i cat i on. l ockappl i cat i on. val ue( "caunt er" ) =0
appl i cat i on. unl ocknd i f
appl i cat i on. l ockappl i cat i on. val ue( "caunt er" ) =appl i cat i on. val ue( "caunt er" ) +1
appl i cat i on. unl ockend sub
sp datoteka : default.asp
% @Language="VBScr i pt "%>%esponse. Wr i t e "Vi ste posj et i t el j br oj : " & appl i cat i on. val ue( "caunt er ")
%>
Object: SERVER
Var = Server.MapPath(r el aci j a)
ova funkcija služi za pronalaženje folder aplikacije
elacija (parametar) :
- root folder aplikacije (“ ..” )
- current folder aplikacije (“ .” )- izabir direktorija (“..” ) & (“ \direktorij\” )
8/18/2019 Visual Basic Script.pdf
31/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Sve vrijednosti koje se ponavljaju stavljaju se u global.asa - keširaju se u application_onStart
ransfer – metoda - PWS 4 ne podržava
prije nego klijent dobije bilo kakav odgovor na traženu informaciju, na serverskoj strani dolazi d
edirekcije I prenašanja podataka na drugu stranicu.
Server.Transfer “ datoteka u koju prenaša”
nclude i SSI
služi za dodavanje vanjskih skripti na postojeću. Kod SSI-a može se ubaciti i unutar stranice, dtandardan include dolazi samo na početku stranice.
!--#include file=” datoteka” -->
%…. kod inc luda server kod traženog upita pregleda sve skripte I sažme ih u jednu I izvršava upit.
execute -PWS 4 ne podržava
poziva se kao podskripta unutar koda radi bolje od include directive, jer se može ubaciti bilo gdje razlika : include sažima skr ipte u jednu , pa ih zatim izvaršava, dok execute odmah izvršava
kriptu tamo u kojem je kodu pozvana
Server.Execute (“ ime.asp” )
ScriptTimeOut
određeno vrijeme koje zadajemo skripti da se izvrši
ako se u to vr ijeme ne izvrši, skr ipta staje sa izvršavanjem
Server.ScriptTimeOut = 10
0—vrijeme zadano u sekundama
HTMLEncode
enkodiranje znakova
Server.HTMLEncode (“ koji znak” )
8/18/2019 Visual Basic Script.pdf
32/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
esponse. wr i te server . tm enco e "ž"
URLEncode
služi za enkodiranje tokena I URL-a (ako u tokenima imamo ime I prezime, on enkodira ime Irezime tako da ih spaja , jer između ne smije biti razmaka)
ar = Server.URLEncode(“ ?ime=pero peric” )
ezultat: ?ime=pero+peric
esponse. wr i t e ser ver . ur l encode ( "j ur a j ur i c")
GetLastError PWS 4 ne podržava
vraća naziv greške koja se pojavila na serveru. Greške izvlači iz ASPError objekta koji u sebi
adrži nastale greške na stranici
Server.GetLastError
%m pero
set per o = Server. Get Last Er r or ' na pws 4 ne r adi
response. wr i t e per o. Descr i pt i on
%>
Object : ASPError
sistem za prepoznavanje pogreški
ropertie – pomoću kojeg tražimo greške
• .ASPCode IIS error code – greška servera
• .Number broj grešaka
• .Source daje tekst linije koda s greškom
• .File ime skripte(datoteke) gdje su nastale greške
• .Line u kojoj liniji koda je nastala greška• .Description opis greške
%
m pero
set pero = Server. Get Last Er r or ' na pws 4 ne radi
response. wr i t e per o. Descr i pt i on
%>
zroci grešaka :
8/18/2019 Visual Basic Script.pdf
33/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
nemogučnost čitanja ili pisanja datoteke
ako je datoteka prazna
nema podataka (varijable, ili nešto nije definirano )
pri obradi forme
ipovi grešaka :
Predprocesing greška prije procesiranja ASP skripte (npr. Nema include datoteke )
Script design time tijekom pisanja skripte – greška u kodu
a) Syntax error nije zatvorena petlja itd
b) Semantie error logička greška (može se ukloniti jedino ručnom inspekcijom podataka) –
krivo pisanje koraka, algoritama itd.
Script runtime errors vanjski utjecaji na skriptu
Error handling
+ linija 1 linija 2
+ linija 3
ako je moguće da dođe do greške u nekoj liniji, preskoči liniju I kreni dalje
On Error Resume Next
isklučivanje preskakanja linija
On Error Goto 0
FileSystemObject
služi za rad s datotekama, folderima
object se kreira sa : Server.CreateObject(“Scripting.FileSystemObject” )
ileSystemObject|
|---- Drives – Drive|---- Folders – Folder
|---- Files – File
‘---- TextStream
Kod rada sa .txt datotekama moramo kreirati podobjekt .OpenTextFile
8/18/2019 Visual Basic Script.pdf
34/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
OpenTextFile(“ ime” ,mode,true,0)
mode 1- read
2 – write
8 – append (promjena)
da bismo snimili upisani tekst, moramo staviti na podobject podobj.writeline (“tekst” ili varijab
Primjer : kako ispisati datoteke u folderu
Primjer : kako ispisati datoteke u folderu kao linkove
%Set f so = Ser ver . Cr eat eObj ect ( "Scr i pt i ng. Fi l eSystemObj ect ")
Set MyFi l es = f so. Get Fol der ( Ser ver . MapPat h( ". ") )
For Each MyFi l e I n MyFi l es. Fi l esResponse. wr i t e "
Primjer: kako izraditi .txt datoteku
Default.asp
f or m name="f orm3" act i on="sni mi . asp" met hod="post " >
ext ar ea name=”memo” r ows=”20” col s=”50”>"
  ;   ;   ;
  ;
Fi l e Name:   ;
nput t ype=”t ext ” name=”i me” >
Snimi.asp
%
= request . f or m( "memo")
f l en( a) ="" t henesponse. wr i t e " Nemoguce krei r anj e datot eke ! "se
al l dat ot eka1( )nd i f
ub datoteka1( )m f s, t s
et f s=ser ver . Cr eat eObj ect ( "Scr i pt i ng. Fi l eSystemObj ect ")=r equest . f orm( " i me")
Set t s=f s. OpenTextFi l e( Ser ver . Mappat h( b , 2, t r ue)ts . wr i tel i ne ats . cl oser esponse. wr i t e "Datoteka - - >" & c &"
8/18/2019 Visual Basic Script.pdf
35/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Primjer : kako otvoriti neku .txt datoteku, upisati nešto u nju I snimiti je ili samo napisati neku novu datote
Default.asp
f or m name="f orm1" act i on="def aul t . asp" met hod="post " >sel ect name="sel " >
%m f i l
et f i l =ser ver . creat eobj ect( "scri pt i ng. f i l esystemobj ect")et f i l e=f i l . get f ol der( server. mappat h( " . . " )
or each f i l es i n f i l e. f i l esf l case(r i ght( f i l es . name, 4)) =". txt" then
r esponse. wr i t e "" & f i l es. nameend i f next
response. wr i t e ""%>
%
t ekst=r equest . f or m( "sel ")r esponse. wr i t e ci t aj ( t ekst)
f unct i on c i t aj ( t ekst)f t ekst="" t hen exi t f uncti on
di m ci t aj t e , ci t at iset ci t aj t e=ser ver . Cr eat eObj ect( "Scri pt i ng. Fi l eSyst emObj ect" )set ci t at i =ci t aj t e. OpenTextFi l e( Ser ver . Mappat h( ". . ") & "\ zvat a\ dat ot eke\ " & t ekst , 1, t rue, 0)
ci taj = ci tat i . readal lci t at i . cl ose
end f unct i on%>
%r esponse. wr i t e ""
%>/ f or m>
nimi.asp
%= request . f orm( "pp")
f l en( a) ="" t henesponse. wr i t e " Nemoguce krei r anj e datot eke ! "se
al l dat ot eka1( )nd i f
ub datoteka1( )m f s, t s
et f s=ser ver . Cr eat eObj ect ( "Scr i pt i ng. Fi l eSystemObj ect ")=r equest . f or m( "t t ")
Set t s=f s. OpenTextFi l e( Ser ver . Mappat h( ". . ") & c , 2, t r ue)t s . wr i tel i ne ats . cl oser esponse. wr i t e "Datoteka - - >" & c &"
8/18/2019 Visual Basic Script.pdf
36/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Primjer :
%
andomize
=(rnd*10+1)
esponse.write a
%>
vaki puta kada refreširamo stranicu ispisuje nam neki drugi broj u razmaku od jedan do 10
to tako možemo randomizirati I slike, tako da se svaki puta pojavi druga sli ka:
%andomi ze
=i nt ( r nd*10+1)
=cst r ( a)
esponse. wr i t e ""
%>
Kreiranje Dictionary objekta
o služi za pohranu niza riječio radi kao riječnik (u txt datoteku ili bazu podataka upišemo pojmove I njihova značenja
pomoću njega pretraživamo pojmove)
o npr. Ja upišem ‘asp’ , on pretražuje I izbaci active server pages
Set var=Server.CreateObject(“ Scripting.Dictionary” )
Dodavanje podataka :
Set dic=server…..
ključ vrijednost
ic.Add “ IIS” “ Internet Information Server”
ic.Add “ ASP” “ Active Server Pages”……
ščitavanje podataka :
= dic(“ IIS” )
ko je pohranjen object, onda set a = dic(“ IIS”)
ohrana u session :
8/18/2019 Visual Basic Script.pdf
37/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
et session(“ DIC” )=dic
dređivanje ulaznih parametara ( da li će se razlikovati a od A ili neće) :
ic.CompareMode= 0 ili 1
– binarni a 1 A
– tekstualni a = A
risanje određenog ključa :
ic.Remove (“ IIS” )
risanje svega :
ic.RemoveAll
rovjera postojećeg podatka :
dic.Exists(ASP) then…
…
zlistavanje popisa svih ključeva :
ljucevi = dic.keys niz
For i=Lbound(kljucevi) to Ubound(kljucevi)
Response.write kljucevi(i)
zlistavanje popisa svih vrijednosti :
rijednosti = dic.items niz
For i=Lbound(vrijednosti) to Ubound(vrijednosti)
Response.write vrijednosti (i)
Kada petlja pretraži do kraja datoteka I da bi ispisala nema vrijednosti, moramo koristiti :
dic.AtEndOfStream then…
…
Primjer kako pretraživati I upis ivati nove pojmove :
Dictionary.asp
8/18/2019 Visual Basic Script.pdf
38/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
%=r equest . f or m( "kl j ")=r equest . f or m( "vr i ")
upisivanjeu postojeću txt datoteku
f l en( b) >0 and l en( c) >0 t henset f s=ser ver . creat eobj ect( "scri pt i ng. f i l esyst emobj ect" )set t s=f s. opent ext f i l e( ser ver. mappat h( ". ") & "\ kr at i ce. t xt ", 8)
ts . wr i te l i ne bts . wr i te l i ne c
ts . cl oseset f s=nothi ng
nd i f
pr et r aži vanj e t xt dat ot ekeet di c = ser ver . creat eobj ect( "scri pt i ng. di cti onar y")et dat = ser ver . creat eobj ect( "scr i pt i ng. Fi l eSyst emObj ect" )et di ct = dat . opent ext f i l e( server . mappat h( ". ") & "\ krati ce. t xt ", 1)
okl j uc i =di ct . readl i nevri j ednosti =di ct. r eadl i ne
I f Len( kl j uci ) >0 t hen di c. add kl j uci , vr i j ednostioop unt i l di ct. at endof str eam
=r equest . f orm( "ab")
f di c. exi s ts (a) thenr esponse. wr i t e "" & a & " : "r esponse. wr i t e ">> " &di c( a) &"
8/18/2019 Visual Basic Script.pdf
39/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
4. cjelina Ac c e s s – r e l a c i j s k e b a z e p o d a t a k a utor : Ocvirek Tomislav (c)1997 - 2001.
Uvod
B a za p o d a t a k a (grč. b a s i s – osnova, temelj, skladište, spremište) je skup podataka kojie odnosi na određene objekte (entitete) i podatkovno ih opisuje. Entitetom smatramo sve štomožemo opisati.
Npr. u kontekstu baze podataka ‘Knjižnica’ to mogu biti :
o članovi (subjekti),
o knjige (objekti) i
o posudbe (događaji, procesi).
Svaki entitet opisuje se nizom podataka (informacija) koji su smejšteni u jednu (najčešće)i više tablica. Tablice su idealni oblik za smještaj podataka u bazu. Možemo reći da se podacispremaju’ u tablice i na taj način ostaju sačuvani. Baza podataka je pohranjena na disk u oblikuedne (npr. Access) ili više datototeka. Tablice svojim oblikom moraju omogućiti pohranu svihotrebnih podataka za opis jednog entiteta.
Npr. baza podatka ‘Adresar’ može sadržavati jednu tablicu tblAdresar koja opisujentitet ‘osobu’ te sadrži slijedeće podatke: Ime, Prezime, Telefon, Fax, E-mail i Adresu. Ti podaciovu se polja (fields) i zajedno čine jedan zapis (record). Na slici vidi se tablica tblAdresar.rimjetite: Stupci (Columns) su polja, a redci (Rows) su zapisi.
blAdresar:
Zapis br. Ime Prezime Telefon Fax E-Mail Adresa
1 Tomislav Ocvirek 098/619-721 - [email protected] -
2 Ana Perković 6623-458 - [email protected] -
.... N
R el a ci j s k a b a z a p o d a t a k a (grč. r e l a t i o – izvještaj, zapis, veza, doticaj) je baza u kojoodaci povezani relacijama čija je uloga da se izbjegne zalihost (redundancija, ponavljanje)odataka. Osim toga relacijama se osigurava integritet podataka. Baza podataka je izgrađena na
eorijskom modelu, a Access utjelovljuje efikasnu i vjernu primjenu tog modela (iako treba reći de složeni matematički model ne može 100% izvesti u praksi zbog njegove apstraktne naravi).
Microsoft Access nije baza podataka već R e la t i o n s h i p D a t a B a s e M a n a g em e n t S y s t em RDBMS), dakle mašinerija (engine), program za upravljanje bazom podataka. Access na zadaniačin podatke smještene u tablicama obrađuje i pri tom poštuje integritet relacijskog modela.
Do konačnog relacijskog modela baze dolazimo tako da potrebne podatke smještene u većiablicama podvrgnemo normalizaciji (postoji više normalizacijskih shema) i poštujući pravilaormalizacije razvijemo idealan oblik baze. To rezultira pretvorbom velikih tablica u veći broj manablica koje su međusobno relacijski povezane. Time se izbjegava ponavljanje podataka i olakšava
mailto:[email protected]:[email protected]:[email protected]:[email protected]
8/18/2019 Visual Basic Script.pdf
40/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
nos, održavanje i pretraživanje podataka.
Zašto je relacijski model bolji od klasičnog ‘tabelarnog modela’? Pogledajmo na primjermamo jednu veliku tablicu koja sadrži podatke o proizvodima :šifra proizvoda, naziv, vrsta, cijeaziv tvrtke dobavljača, adresa dobavljača, telefon dobavljača i odgovorna osoba. Dakle svi ti poezani uz jedan proizvod (uključujući i podatke o dobavljaču).
Šifra proiz. Naziv Vrsta Cijena Naz.tvrtke Adresa Telefon Odg.osob1023345 LCD 4GP Monitor 2345 Kn I.P.M. Matoša 12 2345-678 M.Maruli
Zamislite da imamo 2500 zapisa i od toga 325 zapisa imaju istog dobavljača. Dobavljač jeromjenio broj telefona. To znači, premo sadašnjem modelu moramo taj broj ispraviti 325 puta (n25 različitih zapisa u bazi). Time se izlažemo mogućnosti da pogriješimo pri ispravljanju podataknaporno, zar ne ?). Osim toga zašto se svi ti podaci moraju 325 puta ponavljati ? To je nepotrebko je moguće da taj podataka navedemo samo jednom. Time bi uštedili na diskovnom prostoru,rzini rada baze (performance) jer bi proporcionalno bi porasla i brzina sortiranja, pretraživanja –kratko - obrade podataka !
Ako bismo te podatke rastavili u dvije manje tablice (n o r m a l i za c i j o m ) od kojih bi jedna
adržavala podatke o proizvodima, a druga podatke o dobavljačima, tada smo stvorili relacijskimodel. Tablice su međusobno povezane relacijom. To je učinjeno tako da je u obje tablice dodanoolje ‘Šifra dobavljača’ (ID) a zatim je preko tog polja ostvarena relacija između tablice Proizvoablice Dobavljači.
Polje ‘Šifra dobavljača’ u tablici Dobavljači mora osigurati jedinstvenost svake šifre (moriti zaključano tj. biti primarni ključ – primary key ), a polje šifra dobavljača u tablici Proizvodistrani kjuč – f o r e ig n k e y ) ne smije biti zaključano jer se šifra smije ponavljati tj. moguće je daiše proizvoda dolazi od istog dobavljača. To je najšešći oblik relacije ONE-TO-MANY. Dakle, jednoapisu iz tablice Dobavljači odgovara više zapisa iz tablice Proizvodi ili ponovo da to kažemo na dračin: jedan dobavljač može dobavljati i više od jednog proizvoda.
Koje su prednosti ovakvog pristupa ? Kao prvo, sve podatke bilo bi dovoljno unjeti samoednom. Dakle, i u slučaju promjene nekog podatka (npr. telefona dobavljača) dovoljno je turomjenu učiniti samo jednom i na jednom mjestu – u tablici dobavljača! Jednostavnije jedministriranje i održavanje baze, očito !
Kada bi stvorili relaciju između dva primarna ključa, to bi bila relacija ONE-TO-ONE, tj. jednapisu iz prve tablice odgovara samo jedan zapis iz druge tablice. Takvim relacijama povezujemo ablice koje opisuju isti entitet.
8/18/2019 Visual Basic Script.pdf
41/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Početak rada s Accessom
Pri pokretanju Access-a, u Access-ovom se prozoru otvara dijalog Microsoft Access kojimogućava kreiranje nove prazne baze podataka (Blank database), kreiranje nove baze podatakaomoću Database Wizard ili otvaranje postojeće baze. Ako kreiramo novu bazu podataka, Access rvo kreirati datoteku baze podataka na disku (naravno, pitat će nas za ime pod kojim želimo snimazu), a tek potom je moguće raditi s novom bazom.Nakon što smo otvorili postojeću ili kreirali nazu podataka, u Accessovom prozoru se otvara Database prozor, koji sadrži šest kartica – svakajih služi za upravljanje jednim od objekata Access baze podataka.
Objekti Access
Svaka baza sastoji se od nekih osnovnih c i g l ic a – t j . o b j e k t a . Tako se Access sastoji odlijedećih skupina objekata:
Access 2000:
Access 97:
8/18/2019 Visual Basic Script.pdf
42/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
. Tablice (Tables) - u njih unosimo podatke, a sastoje se od redaka – rows, slogova, zapisa,ecorda i stupaca – polja, fiedls, podatka). Tablice su jedini fizički nosioci podataka u baziodataka. Svi ostali objekti služe za ažuiriranje i pregled tih podataka.
2. Upiti (Queries) - pomoću njih na temlju postavljenih kriterija, pretražujemo jednu ili više tabvadimo podatke od interesa i time dajemo svrhu bazi podataka, a to je da u svako vrijeme uz
minimalno truda imamo potreban podatak na raspolaganju. Zapisi koji zadovoljavaju zadane kritenpr. da Prezime počinje slovom ‘P’) stvaramo nove privremene tablice (setove zapisa, tj. Recordsve) koje su promjenjive u vremenu a mijenjaju se sukladno promjenama u izvornim permanentnablicama. Upiti su pogodni za pregledavanje i stvaranje izvještaja, ali i za mnoge druge operacije
oje trajno mijenjaju strukturu, mjesto i oblik podataka. Query su ključni dio RDBMS mašinerije.Queryi se mogu graditi na dva načina: pisanjem u SQL (Structured Query Language) koji jervenstveno i izmišljen za rad s relacijskim bazama podataka (pregled, filtiranje, izmjenu, dopunuodataka). No, bez straha, QBE (Query by example) je vizualni pristup postavljanje upita i ne
ziskuje poznavanje SQL sintakse: vi doslovno nacrtate upit (dobro, morate nešto i napisati –riterije), a QBE će na temelju vaših zahtjeva generirati SQL-kod (kojeg možete i pogledati ; zgoda učenje, zar ne ?). Upiti mogu biti pasivni (SelectQuery, CrossTabQuery itd.) i aktivniMakeTableQuery, DeleteQuery, AppendQuery, UpdateQuery itd). Ovi drugi su znatno opasniji jer zički mijenjaju tj. dopunjuju i brišu podatke iz vaših tablica !
. Forme ili obrasci (Forms) - grafička sučelja koja olakšavaju rad s bazom kao i unos podatakOna su zahvalna za osjećaj udobnosti pri radu s bazom, kako vas tako i budućih korisnika vaših ba
oji, pretpostavljamo ne razlikuju operativni sustav od hardware-a.4. Izvještaji (Reports) - ušminkani dokumenti koji prikazuju tablice i upita grafički i pregledno,amjenjeno ispisu na papir (da možete nešto šefu staviti na stol).
. Web stranica (Pages) - s verzijom Access 2000 dolaze i objekti Pages koji omogućujua se za unos i pregled stranica kreiraju web stranice koje se mogu pokretati i koristiti kroučelje Internet explorer-a kao klasična web stranica bez potrebe za Access-ovim sučeljem
To je izuzetno pogodno za Intranet (velike tvrtke s razvijenom lokalnom mrežom).
6. Makroa (Macros) - automatsko ponavljanje čestih radnji (tipično za Microsoftove proizvode).Može poslužiti, ali nije neophodno ako dobro dizajniramo i isprogramiramo sučelje baze. Ipakccessovci su ih zavoljeli, pa ćemo i njih upoznati.
. Modula s kodom (Modules) - samo za teške programere, dakle, za vas. Manevriranje bazomostavljanje raznih uvjeta itd. Ovdje nam pomaže znanje iz Visual Basica i VBA-koda. Tu smještampće procedure i funkcije koje koristimo pri obradi podataka. Iskreno, nećete imati potrebu čestoisati module jer kod najčešće vezan uz forme (odnosno nalazi se u modulu forme i odgovaraogađajima na formi).
Tables - kreiranje tablica
ovu tablicu u bazi kreiramo u dijalogu koji dobijemo klikom na gumb New u Table kartici idabirom Design View pogleda. U stupcu Field Name upisujemo ime polja tablice, a u stupcu Data
8/18/2019 Visual Basic Script.pdf
43/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Type odabiremo tip podataka za to polje tablice. U kartici General u donjem dijelu dijalogaodešavamo ostala svojstva za svako od definiranih polja:
ield Nameme polja, vrlo važno je kako imenujemo polje (izbjegavati dijakritičke znakove), pa je uputnoapisati ili isprintati nazive svih polja u vašim tablicama
Data Typep podataka. Najčešće je to Text (90 %) maks. dužine 255 znakova, za vremenske podatke valja
dabrati Date/Time, za valute i novčane iznose Currency, za količinske i općenito brojevne veličNumber, za dugačke tekstualne opise Memo, za logične podakte tipa Da/Ne tip Yes/No, zanternet adrese Hyperlink, za OLE objekte OLE. Napomena: JMBG, telefonski brojevi i sl. uvijek ćiti Text polja ! AutoNumber je tip podatka koji predstavlja stalno rastući cijeli broj i pogodan jepotrebu kao ID polje kada ne želimo unositi podatke u to polje i kada se kasnije nećemo nikadaozivati na to polje tijekom pretraživanja baze.
Description – opis polja, vaš podsjetnik
Format – definiranje oblika podataka u polju; ovisi o tipu podataka polja. Npr. Number može Integer, Long (cijeli broj), Single (Decimalni) itd. Datum može biti kraćeg ili dužeg formataprikaza itd.
InputMask – kreiranje maske za unos podataka; masku za unos kreiramo tako da kliknemo upodručje za upis InputMask svojstva, pri čemu se uz desni rub područja pojavi gumb Builder-aBuilder (graditelj) će se pojavljivati na više mjesta u Access-u, a on nam olakšava kreiranjepotrebnog izraza pokretanjem čarobnjaka ili otvaranjem dijaloga Expression Builder . U ovomslučaju Builder pokreće čarobnjaka za kreiranje InputMask svojstva. (npr. maska za unos datuu koji prikazuje datum u obliku 15-svi-98, mogla bi izgledati ovako: __-___-__, a maska za utel. broja formata 098/619-721 će izgledati ovako:999\/999\-9999.
Caption – naslov polja u prikazu sadržaja tablice (podrazumijevanbo je jednak imenu polja)
DefaultValue – podrazumijevana vrijednost polja (automatski se unosi u polje ako pri unosusloga u tablicu izostavimo podatak za to polje). Npr. ako je polje datum i želimo da svaki put kse stvori novi zapis da se automatski upiše današnji (tekući) datum, tada ćemo za Default valustaviti vrijednost Date() – to je ugrađena funckija Accessa koja vraća sistemski datum
Validation Rule – definiranje pravila (uvjeta) koja moraju zadovoljiti podaci da bi bili unjeti upolje. Npr. cijena proizvoda ne smije biti nula: cijena > 0
Validation Text – upozorenje koje se ispisuje ako pri unosu podataka narušimo Validation RuNpr. “Cijena ne može biti nula !”
Required – definiramo je li pri unosu podataka obavezno unijeti podatak za to polje, ili ga jedozvoljeno izostaviti
Indexed – omogućava definiranje indexa na polje (No duplicates index osigurava jedinstvenospodataka u polju, a Duplicates OK dozvoljava duplikate vrijednosti u polju). Mada nije nužno,uputno je u svakoj kreiranoj tablici definirati primarni ključ radi osiguravanja integriteta relacijPrimarni ključ definiramo tako da označimo sva polja od kojih će se ključ sastojati i pokrenemonaredbu Edit ® primary Key ili jednostavno kliknemo gumb sa slikom ključa na traci s alatima
8/18/2019 Visual Basic Script.pdf
44/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Moguće je definirati i svojstva na razini čitave tablice, a ne samo na razini jednog polja. Time je nmogućeno definiranje pravila za unos (Validation Rule) koja će povezivati više polja tablice. Ovavojstva definiramo u dijalogu T a b l e P r o p e r t i e s koji dobijemo naredbom View ® Properties. Akismo npr. imali tablicu sa stupcima maloprodajna cijena i veleprodajna cijena moguće je defiirativjet: maloprodajna cijena > veleprodajna cijena.
Kada smo definirali polja tablice i njihova svojstva, snimamo tablicu naredbom File ® Save As ililikom na gumb sa slikom diskete na traci s alatima, pri čemu dajemo ime tablici.reporuka je svakoj tablici dodati prefix tbl. Tako npr. tablica Adresar zvati će se tblAdresar.
Unos podataka u tablicu
odatke u tablicu baze podataka možemo unositi na više načina. Najjednostavniji način, koji ćemovdje opisati je unošenje direktno u datasheet prikaz tablice. Moguće je podatke unositi i preko foreiranih u Access-u (o tome kasnije) ili iz npr. iz forme Visual Basic aplikacije (o tome takođerasnije). Za unošenje podataka u datasheet prikaz tablice potrebno je u Tables kartici Database
rozora označiti željenu tablicu, te kliknuti gumb Open. Podaci se jednostavno upisuju udgovarajuće ćelije tablice. Među ćelijama tablice krećemo se pomoću strelica ili tipkom TAB zalijedeći ćeliju , a Shift+TAB za prethodnu ćeliju. Među unesenim slogovima tablice moguće je kree i pomoću gumba sa strelicama koji se nalaze pri dnu prozora. To su navigacijski gumbi:
8/18/2019 Visual Basic Script.pdf
45/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
odatke u tablici je moguće kopirati, isijecati i pomicati standardnim Cut, Copy, Paste naredbamaao i drag&drop operacijom miša:
Relationships – uređivanje relacija između tablica
Ključevi
Primarni ključ (PRIMARY KEY) postavlja se na jedno ili više polja u tablici. Njihova uloga je danemogućuju ponavljanje podataka u tim poljima. Njima osiguravamo jedinstvenost svih podatakoljima na koja smo ih postavili ( jedan ključ = nema duplikata u polju zaključanom polju).
Dakle polja poput JMBG, ID, Šifra artikla, Člasnki broj itd. su polja na koja svakako trebaostaviti ključ jer ti se podaci ne smiju ponavljati. Zamislite dva čovjeka u knjižnici s istim članskrojem !?! Zbrka ?
Ako u jednoj tablici na više polja postavimo ključeve tada kreiramo složeni ključ. Sada svako ponutar složenog ključa može i ne mora imati duplikate, ali ne mogu postojati dva zapisa u jednojablici s istom kombinacijom podatraka tj. da imaju sve podatke identične u sva tri zaključana po
ndexi
ndex-i su onaj su onaj dio mašinerije RDBMS-a koji ubrzavaju sortiranje i pretraživanje podatakelikim tablicama kreirajući nama korisnicima nevidljive index tabele. Da li je neko polje indeksirai ne određujemo u Field Properties pojedinog polja u Design View-u tablice (vidi sliku). Indexi suoji dopuštaju ili zabranjuju duplikate u pojedinom polju (vidi sliku):
8/18/2019 Visual Basic Script.pdf
46/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
ndexe je moguće urediti i na razini čitave tablice View/Indexes gdje još određujemo smjerortiranja indeksiranih polja (rastući ili padajući sort). Svako polje s ključem (primarni ključ ili dioloženog ključa) je automatski indeksirano.
Relacije
Relacije (veze) između tablica mogu biti permanentne na razini baze podataka i njih definiramo u
rozoru Tools/Relationships , dok privremene relacije za potrebe izvršavanja query-a (upita)efiniramo pri stvaranju samih querya i one se nakon prekida izvršavanja query-a brišu. Privremeelacije su podređene permanentnima i na temelju njih se definiraju. prozoru Relationship opcijom Show Table biramo samo one tablice između kojih zaista želimoreirati relacije (najčešće je to većina tablica). Relacije se kreiraju jednostavnoim Drag’n’Dropomolja iz prve tablice na ciljano polje u drugoj tablici (svejedno je iz koje tablice krećemo jer je relabostrana).
Relacije na razini baze Tools / Relationships:
8/18/2019 Visual Basic Script.pdf
47/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Relacije definirane u Queryima (tzv. ‘Joinovi’):
kontekstu relacije definirane između dviju tablica, primarni ključ (Primary Key) nalazi se ulavnoj, parent tablici, dok se strani ključ (foreign key) nalazi u podređenoj, child tablici. Ovdjeaglasak na terminologiji zbog eventualne dodatne literature koju ćete koristiti u radu.
Postupak uređivanja relacija između tablica
Dakle, u Accessu je moguće definirati povezanosti među podacima na način da uspostavljamo vezmeđu tablicama preko polja koja sadrže jednaku vrstu podataka. Tako na primjer u bazi 'Trgovinaablica Proizvod i tablica Prodaja sadrže polje Sifra, u koje se spremaju podaci o šifri proizvoda.
Očito su ove dvije tablice povezane preko tih polja.Veze među tablicama uređujemo u dijalogu Relationships (Tools ® Relationships). Postupak jeljedeći:. Tools ® Relationships. odaberemo sve tablice baze među kojima želimo editirati veze (najčešće sve tablice baze)
8/18/2019 Visual Basic Script.pdf
48/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
. u prikazu jedne od tablica među kojima uspostavljamo vezu uhvatimo mišem polje preko kojegse ostvaruje veza među tablicama, odvučemo ga do tablice s kojom uspostavljamo vezu iotpustimo tipku miša iznad odgovarajućeg polja u toj tablici.
. pojavljuje se dijalog Relationships (možemo ga pozvati iz kontekst menija preko opcije EditRelationship) – u njemu podesimo opcije na željeni način:
Nakon što definirate vezu među tablicama Access prikazuje tu vezu slikovito na način vidljiv na sli. Ovdje je još bitno zapamtiti da ono polje u vezi koje treba činiti stranu 1 veze 1–1 ili 1–N moriti primarni ključ ili mora imati definiran jedinstveni indeks (indeks koji ne dozvoljava dupliciranjerijednosti u polju).
Referencijalni integritet
Referencijalni integritet osigurava postojanost svih podataka u bazi. Npr. u bazi podatakaVideoteke u tablici Posudbe ne možemo imati naveden zapis sa brojem iskaznice člana ako taj člaj broj nisu istovremeno nevedni i u tablici Članovi pod istim brojem iskaznice. Dakle, svakiodataka u ovakvoj vrsti relacije mora imati pokriće. Ako želimo obrisati jednog člana iz tablicelanovi jer se ispisao, i pri tom želimo izbrisati sve zapsie o njegovim dosadašnjim posudbama izablice posudba, uključiti ćemo opciju Ca s ca d e d e l e t e r e l a t e d r e c o r d s . Ca s ca d e u p d a t e e l a t e d f i e l d s će reagirati na promjenu u izvornoj tablici (s primarnim ključem) i osvježitiromjenjeni podatak u svim ostalim tablicama kaskadno u relacijskim vezama u dotičnom polju siljem da i one budu dosljedne izvornoj. Preporučljivo je ovu opciju uključiti na samom krajureiranja baze podataka, dakle prije neposrednog ‘puštanja baze u upotrebu’ jer u protivnom ta npcija može postati kamenom spoticanja tijekom raznih testiranja, debuggiranja i razvoja baze.
8/18/2019 Visual Basic Script.pdf
49/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
oin Type – podvrste relacije
ostoje tri podvrste relacije (tri tipa združivanja). Očito, svrha relacije je da se iz dviju ili više tablzdvoje zapisi koji imaju nešto zadjedničko, u nekoj su vezi. Npr. tablica tblPosudbe sadrži popisignatura svih knjiga koje su posuđene određenog datuma, a tablica tblKnjige sadrži popis svihnjiga koje postoje u knjižnici zajedno s pripadajućim signaturama. Naravno, mi vezu ostvarujempravo preko polja signatura, tako da mi možemo saznati naslov, autora i ostale pojedinosti onjizi iz tblKnjige na temelju singnature iz tblPosudbe. Za to je zaslužna relacija, a najčešći tipelacije je tip 1.
Tip 1: Uzmi u obzir samo one zapise za koje je relacijsko polje navedeno u obje tablice. To značie iz relacije biti razmatrani samo oni zapisi kod kojih je npr. signatura knjige navedena u objeablice (tblKnjige i tblPosudbe). Ako je u tblPosudba navedena signatura knjige koja ne postoji ublKnjige, taj će zapis biti ignoriran. Referencijalni integritet, sjetimo se, spriječava nastanak ovakituacija. Ova vrsta veze (Join-a) se u SQL treminologiji zove INNER JOIN.
Tip 2: Uzmi u obzir sve zapise iz prve tablice te one za koje je relacijsko polje navedeno i u drugablici. To znači da će iz relacije biti razmatrani oni zapisi kod kojih je npr. signatura knjige navedeobje tablice (tblKnjige i tblPosudbe) kao i svi ostali zapisi iz tblKnjige bez obzira na relaciju i na
8/18/2019 Visual Basic Script.pdf
50/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
a li ta signatura postoji u tblPosudbe. Ova vrsta veze (Join-a) se u SQL treminologiji zove LEFTOIN
ip 3: Obrnuta situacija što se tiče tablica od tipa 2. Ova vrsta veze (Join-a) se u SQL treminologiji zove RIGHT JOIN
Queries – kreiranje upita
piti su objekt baze podataka koji nam omogućava prikaz željenih podataka iz baze. Tradicionalnorelacijskim bazama upiti postavljaju SQL jezikom (Structured Query Language) , što je mog
u Access-u, ali Access ima i zgodnu mogućnost kreiranja upita uz pomoć grafičkog sučelja – QBmreže (Query By Example Grid), što je praktičnije i jednostavnije za korištenje pa ćemo se mvdje baviti samo ovim načinom kreiranja upita. Upite ćemo pomoću QBE mreže kreirati tako daliknemo gumb New u kartici Query u Database prozoru. Prvo je potrebno u Show Table dijalogudabrati za prikaz sve tablice čiji će nam podaci trebati za dohvat željenih podataka. Nakon togaednostavno spuštamo mišem (drag’n’drop) željena polja iz prikazanih tablica na QBE rešetku iostavljamo željene kriterije (Criteria) za odabir podataka iz tablica.
Npr. kreirat ćemo upit koji će nam prikazivati pregled prodaje namještaja na način da za svakustvarenu prodaju prikaže šifru, vrstu i model prodanog namještaja, te datum prodaje i broj
rodanih komada namještaja. Rješenje možete vidjeti na slici 1.
8/18/2019 Visual Basic Script.pdf
51/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Slika: Select Query upit koji prikazuje pregled prodaje
akon što kreiramo upit, da bismo ga pokrenuli i prikazali željene podatke, izvršavamo naredbuQuery ® Run. Upit snimamo naredbom File ® Save As pod željenim imenom. Preporuka je svakouery-u dodati prefix qry.ako npr. query Prodaja zvati će se qryProdaja.
načenja područja na QBE mreži su sljedeća:Field – ime odabranog polja
Table – ime tablice u kojoj se nalazi odabrano poljeSort – definiramo hoćemo li i kako (uzlazno, silazno) sortirati rezultate upita prema vrijednostodređenog poljaShow – da li će dotično polje biti prikazano u rezultantnoj tabliciCriteria – definiramo uvjete na podatke određenog polja da uđu u rezultatni skup podatakaOr – drugi dio kriterija koji omogućuje da ako je je prvi ili drugi dio kriterija zadovoljen, da zabude uzet u obzir.
Field Properties
vakom je polju query-a moguće odrediti format podatka. U kontekstualnom meniju poljababeremo opciju Properties i zatim odaberemo željeni format u Field Properties prozoru:
ookup fields – polja za obabir predefiniranih vrijednosti
ookup svojstvo polja (kako u queryu, tako i u tablicama) nam olakšavaju unos podatka u tablicu a taj način da nam se na mjestu unosa pojavi Drop-down lista (Combo Box) iz kojeg midaberemo željenu vrijednost za to polje. Podaci s kojima je popunjen taj ComboBox mogu se uzez postojeće tablice ili query-a (Row Source Type) tako da odaberemo ime tablice ili query-a (RoSource). Zatim odaberemo redni broj polja (Bound Column) iz tog izvora podataka (tablice iliuerya) iz kojeg uzimamo podatak koji će se nakon odabira upisati u ciljano polje (preslikati).
Najčešće je to prvo polje odn. ID ili Šifra proizvoda itd. Row Source-a. Column Count određujeoliko će se polja u combu prikazati (vidi sliku 1. - odabrano je 2 polja, s tim da se podatak uzimaamo iz prvog !) , a Column Heads da li će se ispisati nazivi polja (vidi sliku 2.). List Rowsdređuje koliko će se redaka u combo boxu pojaviti odjednom (za ostale moramo scrollati).
8/18/2019 Visual Basic Script.pdf
52/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
lika 1.
rilikom unosa podataka u tablicu ili query (a kasnije i na formi), to će izgledati ovako:
S l i k a 2 .
Criteria – AND i OR operatori
) Želimo li više kriterija povezati AND operatorom to ćemo napravit tako da navedemo kriteriji ustom Criteria retku:
b) Želimo li više kriterija povezati OR opertatorom to ćemo napraviti tako da kriterije navedemoaskadno:
) Želimo li za jedno polje postaviti više mogućih kriterija s tim da nam je dovoljno da jedan od njude ispunjen tada ćemo kriterije navesti u istom stupcu:
) Kombinacijom obojeg možemo dobiti AND i OR veze između kriterija.
oin Properties
odvrstu relacije u queryu (Join Type) moguće je definirati baš kao i u Relationship prozoru.Dovoljno je u kontekstualnom meniju odabrati Edit Relationship ...
8/18/2019 Visual Basic Script.pdf
53/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Calculated Fields - Izračunata polja
tupci prikazani u rezultatima upita ne moraju uvijek biti postojeća polja iz tablica ili query-a bazeodataka. Moguće je u upitu definirati i izračunata polja (Calculated Fields). To su nova poljaenerirana polja na temelju određene formule koju zadajemo. To su funkcijska polja.
ako npr. ako imamo polje Jedinič_cijena iz tablice Skladište i polje Količina iz tablice Stavkemožemo u upitu kreirati polje novo izračunato polje Ukupno formulom:
Ukupno: Skladište!Jedinič_cijena*Stavke!Količina
akon toga možemo polju odrediti format Currency ili bez toga, pomoću konverzijske funkcije CCconvert to currency - cijeli izraz prekonvertirati u valutu:
Ukupno: CCur( Skladište!Jedinič_cijena * Stavke!Količina )
dje je Ukupno ime novog izračunatog polja, a nakon dvotočke ‘:’ pišemo f o r m u l u . Ovdje se očiadi o jednostavnom umnošku cijene i broja prodanih komada što daje ukupan prihod.
o će omogućiti da se u svakom retku query-a prikaže umnožak jednične cijene i broj prodanihomada (iz odgovarajućeg retka).
rimjetite da je, ako se u izračunatom polju nalaze podaci iz više različitih tablica, potrebno osimmena polja navesti i ime tablice u kojoj se polje nalazi i to u slijedećem sintaksnom obliku:
me tablice!ime polja
o se zove referenciranje. Referenciranje nije potrebno provoditi ako je query baziran na jednojablici, no ako imamo više tablica referenciranje je neophodno !
a kreiranje formula (izraza) pri definiranju izračunatih polja može koristitimo Ex p r e s s i o n B u i l d eokrećemo ga sa toolbara ili tako da u kontekst. meniju obaberemo Build ...
U Builderu možemo birati postojeće tablice ili query-e i pripadajuća polja, formu, report,građene funkcije (ovo je potrebno proučiti, ima ih mnogo), te operatore (And, Or, Not,ike), simbole (zagrade, plus, minus, puta ...) – i sve to s ciljem da uz što manje tipkanjareiramo formulu za izračunato polje.
8/18/2019 Visual Basic Script.pdf
54/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Totali – agregatne funckije
odatke je moguće i grupirati te prikazati sumarne vrijednosti za svaku od grupa podataka. Zarupiranje podataka u upitu potrebno je kliknuti gumb sa sličicom slova S (Totals) ili View/Totalsri tome se na QBE rešetci pojavljuje još jedno polje Total u kojem za svako polje određujemo dae se podaci u tom polju samo grupirati (Group By) ili će se na njih primjeniti neka agregatnaunkcija (Sum, Max, Min, Count, Average …).
Npr. Kreirati ćemo upit koji prikazuje pregled prihoda ostvarenog prodajom pojedinih modelaamještaja po mjesecima. Rješenje je dano na slici 1. Uočite da su polja Mjesec i Prihod izračunatolja. Podaci se također grupiraju prema mjesecu, šifri, modelu i vrsti namještaja, te po datumurodaje. Podaci su sortirani po datumu prodaje.
Query za pregled ostvarenog prihoda za svaki model namještaja po mjesecima:
Rezultati dobiveni pokretanjem ovog upita izgledaju kao na slici:
8/18/2019 Visual Basic Script.pdf
55/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
SQL
(Structured Query Language ) Select - prikaz polja iz tablice
rom - iz koje tabliceOrder by - sortiraj po (prezime ili ime ili….)Order by Desc - sortiraj od z-aSelect * - selectiraj sva polja (kada koristimo asp, * mijenjamo sa % )
Ubacivanje uvjeta :
Where polje Like ‘M*’Order by Prezime
Primjer :amislimo si da imamo tablicu koja se zove tblAdresar I da ona sadrži polja Ime, Prezime, Telefon, Adreselimo ispisati sve osobe koje se zovu Mario I da ih sortira od z-a I da izlista sva polja traženih osoba:
SELECT * FROM tblAdresar WHERE Ime Like ‘Mario’ORDER BY DESC Ime
8/18/2019 Visual Basic Script.pdf
56/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
Višestruko sortiranje : ORDER BY polje1 ASC, polje2 DESC
OIN
naredbe koje vade podatke iz više tablica koje su u relaciji
Vrste JOIN-ova:
- INNER JOIN- OUTER JOIN - LEFT JOIN - RIGHT JOIN
NNER JOIN
koristi se samo ako tabele imaju iste primarne ključeve
SELECT tbl1.polje1, tbl2.polje2ROM tbl1 INNER JOIN tbl2
ON tbl1.key1=tbl2.key2WHERE……
NNER JOIN – združena tabela, tj. Relacija između tabela
ON - po kojem ključu, tj. Određivanje ključa Agregatne funkcije
specifične (T-SQL)- Microsoft Transaction SQL
GROUP BY - grupira polja , sve iste brojeve pretvara u istu grupuAS - pridruživanje imena polja rezultatuSUM(polje) - suma pojedine grupeMIN(polje) - minimalni broj u grupiMAX(polje) - maximalni broj u grupiAVG(polje) - prosjek pojedine grupeCOUNT(polje) - prebrojava koliko polja ima jedna grupa
Primjer:
tbl1
polje1key1
tbl2
polje2key2
a b1 11 22 43 63 72 83 9
sumaa b1 32 123 22
8/18/2019 Visual Basic Script.pdf
57/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
SELECT a,SUM(b) AS Suma FROM tblGROUP BY a
NSERT
ubacivanje podataka u tablicu
NSERT INTO ime_tablice
NSERT INTO tblKupnja(broj_artikla,cijena)SELECT broj_artikla,cijena FROM tblKošaricaWHERE kupac=kupacID
z tablice košarica prebacuje u tablicu kupnja
DELETE
brisanje iz tablice
DELETE FROM tablica
Primjer . DELETE FROM tblKošarica WHERE kupac=kupacID
UPDATE
omogućuje da jednom intervancijom promjenimo više vrijednosti
UPDATE tablica SET polje1=vrijednost/formula, polje2=vrijednost/formula
pr.u kategoriji 1 cijena mora pojeftiniti za 5%
UPDATE tblProizvodi SET cijena=cijena*0,05 WHERE kategorija=1
Primjer 2 . – Kako smanijiti količinu
tblProizvodiID katrgorija cijena količina
001 1 10 5002 2 15 4
8/18/2019 Visual Basic Script.pdf
58/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
UPDATE tblProizvodi SET količina=količina-1 WHERE ID=001
DISTINCT
služi za ispisivanj samo jednog (npr. U danu je jedan proizvod kupljen 10 puta. DISTINCT upisujemo, daam taj proizvod ne bi ispisalo 10 puta, nego samo jednom.)
SELECT DISTINCT polja FROM tablica
Primjeri :
- združena tabela szajedničkim ključem
SELECTtblDobavljaci.Naziv,tblProizvodi.Naziv,tblProizvodi.Cijena
FROM tblDobavljacNNER JOIN tblProizvodi ON tblDobavljaci.Dobavlač ID = tblProizvodi.Dobavljač ID;
ezultat:
tblDobavljaci.Naziv tblProizvodi.Naziv Cijena
Pliva d.o.o. Cijev 48,55
Zeljezara Grickalice 22,33
Zeljezara vbxcbvxcvb 88
rimjer2 :
a b1 21 21 2
a b1 2
Ar tID Naziv Kategori ja Cijena Stanje
1 Kljuc 18 Kljucevi 28,00 kn 45
2 Kruh Hrana 4,50 kn 450
3 Mala bilježnica Bilježnice 3,50 kn 550
4 Velika bilježnica Bilježnice 5,50 kn 600
ID Ime Prezime IPAdresa
1 Pero Kvrgić 128
2 Jura Perić 129
3 Stevo Jagić 130
4 Zvone Trbić 155
ID ArtID QTY Expire_Date IDtable
1 1 5 9.11.2001 1
1 2 3 9.11.2001 2
1 3 4 9.11.2001 3
1 4 3 9.11.2001 4
2 1 3 9.11.2001 5
2 2 3 11.11.2001 6
1 2 2 9.11.2001 7
3 2 4 9.11.2001 8
3 2 5 10.11.2001 9
3 3 6 9.11.2001 10
3 2 1 10.11.2001 11
4 2 6 9.11.2001 12
4 3 3 11.11.2001 13
8/18/2019 Visual Basic Script.pdf
59/68
ram :
//D|/Download%20Free%20zona/Knjige%20Racunari%20staro/VBSCRIPT.htm[18.4.2010 2:38:34]
- ukupna potrošnja svakog kupca sa ispisom njegove IP adrese:- -primjer sa tri združene tabele :-
sve_ukupno IPAdresa
193,00 kn 128
97,50 kn 129
66,00 kn 130
37,50 kn 155
ELECT Sum((tblArtikli.Cijena*tblKosarica.QTY)) AS sve_ukupno, tblKupci.IPAdresaROM tblArtikli INNER JOIN (tblKupci INNER JOIN tblKosarica ON tblKupci.ID=tblKosarica.ID) ON tblArtikli.ArtID=tblKosarica.AROUP BY tblKupci.IPAdresa;
- ukupno po datumu sa upitom za IP adresu (128), dobije se rezultat
Ukupno_po_datumu
193,00 kn
ELECT Sum(queKošara.Ukupno) AS Ukupno_po_datumuROM queKošaraROUP BY queKošara.IPAdresa;
web košarica – koliko je kupac sa IP adresom128 proizvoda kupio
Ime Prezime IPAdresa Naziv Cijena QTY Ukupno
Pero Kvrgić 128 Kruh 4,50 kn 2 9
Pero Kvrgić 128 Velika bilje�