1. Baze podataka VBScript
UVOD
Baze podataka postoje da bi služile potrebama aplikacija. Aplikacija je, na drugoj strani,
jedinica softvera koja postoji da bi služila potrebama neke aktivnosti. U savršenom svetu, potrebe
aktivnosti određuju zahteve aplikacije, a potrebe aplikacije određuju zahteve baze podataka.
Osnovna ideja baze podataka je da čuva podatke na organizovan način. To donosi dve koristi.
Prvo, podaci su dostupni za raznovrsna korišćenja unutar nekog poslovnog sistema. Drugo, s
obzirom na to da baza podataka ima poznatu strukturu, softverski sistem u kome je smeštena može
da pruži moćne alatke koje proširuju mogućnosti korišćenja.
Za monger Web programere početak rada sa bazama podataka je takođe i početak serverskog
programiranja. Umesto slanja fiksnog sadržaja (Web stranica) čitaču i programiranja čitača da
prilagodi prikaz, Web aplikacija, koja radi nad bazama podataka, programira Web server da
prilagodi sadržaj pre nego što ga pošalje čitaču. Prilagođavanje može biti jednostavno, tako što će se
svoditi na ubacivanje vrednosti iz upita, ili složeno kao u slučaju generisanja jedinstvene stranice za
svaku kombinaciju posetioca Weba i zahteva.
Razvijanje skriptova – kratkih blokova programskog koda visokog nivoa – koji se izvšavaju
na Web serveru dosta se razlikuju od razvijanja skriptova koji se izvršavaju na čitaču.
• Preovlađujući jezik za programiranje skriptova, koji se izvršavaju na čitaču, je
JavaScript. Za serverske skriptove, to je VBScript kod Microsoft Web servera, a za
većinu drugih to su Perl, C ili Java.
• Većina skriptova na strani čitača odnose se na pitanja vizuelnog predstavljanja. Oni
nemaju pristup nijednom drugom delu sistema posetioca Weba, osim prikazu na
ekranu. Serverski skriptovi mogu da pristupe svakom resursu na samom serveru i na
mreži (pod uslovom, naravno, da je administrator servera odobrio takav pristup). To
uključuje datoteke, baze podataka, sisteme elektronske pošte, štampače i faks servere.
• Izvršavanje serverskih skriptova troši više serverskih resursa i predstavlja veći
sigurnosni rizik od isporučivanja jednostavnih Web stranica. Iz tih razloga, dobijanje
dozvole da koristite resurse za primenu serverskog skripta, obično je teže, skuplje, ili
resrtiktivnije od dobijanja Web prostora bez mogućnosti korišćenja skripta.
1
2. Baze podataka VBScript
VBScript
VBScript (Visual Basic Script) je uveden od strane Microsoft-a u Internet Explorer-u,
počevši od verzije 3.0, a zasnovan je na Microsoftovom Visual Basic programskom jeziku. Dizjniran
za laku upotrebu na Internet-u, VBScript omogućuje potpuno automatizaciju i kontrolu nad web
stranama. Zajedno sa ActiveX kontrolama omogućava široku primenu dinamike u web dizajnu.
VBScript se može koristiti i na klijentskoj i na serverskoj strani.
VBScript ne podržava striktno definisane tipove podataka. VBScript funkcije mogu se
nalaziti bilo gde unutar HTML koda, uključujući i HEAD i BODY sekcije. Preporučljivo je da se sve
funkcije deklarišu na istom mestu, i to uglavnom u BODY sekciji.
Veći deo onog što važi kod Visual Basic for Applications, preneće se na VBScript. Međutim,
postoje i bitne razlike:
- Nedostatak vizuelnog aspekta. Ne može da prikaže prozore ili okvire za dijalog, ne podržava
čak ni funkcije MsgBox ili InputBox. Naravno, script može da ispisuje HTML da bi napravio
željeni vizuelni prikaz u čitaču Web posetioca.
- Implicitno definisanje promenljivih. Obične promenljive ne zahtevaju eksplicitno
definisanje u VBScriptu. Da bi se napravila nova promenljiva, dovoljno je početi je koristiti.
Sa druge strane, nizove je neophodno deklarisati pre početka korišćenja.
- Slabo tipizirane promenljive. VBScript podržava samo dva tipa promenljivih: objekte (lako
ih je prepoznati) i varijante (automatski preuzimaju karakteristike podataka od bilo koje
vrednosti koje se u njih pohranjuju). Da bismo “primorali” promenljivu da bude određenog
tipa, potrebno je upotrebiti neku od funkcija za konverziju tipova.
- Objekti koji su jedinstveni za VBScript. Većina objekata se odnosi na pristupanje
datotekama i zamenjuju tradicionalne komande, kao što su Open, Line Input, Print, Close,
Dir$, FileAttr, i FileDateTime.
- Opseg promenljivih. Promenljive napravljene unutar potprograma i funkcija dostupne su
samo unutar tih struktura i unutar potprograma ili funkcija koje pozivaju. Da bi se
promenljiva ili konstanta učinila dostupnom za sav kod serverskog skripta u Web stranici,
potrebno ju je definisati izvan svih funkcija ili potprograma.
- Formatirajuće funkcije. U VBScriptu se umesto Format koriste znatno specifičnije naredbe.
Argumenti između uglastih zagrada su opcioni
- Dodatne funkcije za stringove, kojih nema u drugim oblicima Visual Basica. Većina tih
string funkcija podseća na funkcije koje su prethodno bile dostupne samo u Perlu. U narednoj
tabeli navedene su nove funkcije koje omogućavaju bolje rukovanje stringovima i nizovima:
2
3. Baze podataka VBScript
Funkcija Sintaksa Opis
Filter Filter (ulazniStringovi,vrednost Vraća niz koji sadrži sve
[, uključuje elemente drugog niza koji
[, modelPoređenja]]) sadrže (ili ne sadrže)
navedeni podstring.
InstrRev InStrRev(string1, string2 Vraća poziciju jednog
[, start stringa unutar drugog,
[, modelPoređenja]]) pretražujući zdesna ulevo.
Join Join(lista Kopira sve elemente niza u
[, graničnik]) jedan string, opciono
razdvajajući sve elemente
niza zadatim znakom.
Replace Replace(izraz, pronaći, U datom string izrazu,
zamenitiSa zamenjuje jedan podstring
[, start drugim i zatim vraća
[, brojanje rezultat.
[, modelPoređenja]]])
Split Split(izraz Kopira razdvojeni string u
[, graničnik jednodimenzionalni niz.
[, brojanje Svaki put kada Split pronađe
[, modelPoređenja]]]) graničnik, počinje sa
kopiranjem u novi elemenat
niza.
StrReverse StrReverse(string) Obrće redosled znakova u
stringu i vraća rezultat – na
primer, StrReverse(''abc'')
vraća ''cba''.
U nastavku prikazane su definicije samo nekih (od mnogo) procedura VBScripta. Naveden je
opis, spisak parametara (ukoliko ih ima), povratna vrednost (ukoliko je u pitanju funkcija) i primer
upotrebe svake procedure.
3
4. Baze podataka VBScript
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)
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
4
5. Baze podataka VBScript
Right Right(var) -||- od desne strane
Middle> 1.parametar-string s kojim Mid(var) -||- od sredine
radimo, 2. parametar-pozicija
odakle uzimamo, 3.parametar –
broj znakova koliko uzimamo
Replace (varijabla,''što'',''u što'', Replace() Jedan dio stringa zamjeni s
pozicija od kojeg mjesta, koliko drugim
promjena(ako je –1, onda mijenja
sve riječi), vrste traženja
0- binarno
1- tekstualno
2- baza podataka
StrReverse StrReverse(var) Okreće riječi naopako
String String(koliko ponavljanja, ascii Više puta ispisuje slovo koje
kod)
smo zadali ascii kodom
Asc ASC() Traženje ascii kodova: A->65
CHR CHR() Obrnuto od ascii 65->A
SPACE Space() 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
Za ostalo pogledati VBScript dokumentaciju.
Primjer 1 :
<html>
<head>
<script language="vbscript">
<!--
sub window_onload()
a="Bok ljudovi ! "
document.write "Len-broj slova = " & len(a) & "<br>"
document.write "LCase-mala slova = " & lcase(a) & "<br>"
document.write "UCase-velika slova = " & ucase(a) & "<br>"
c = left(a,4)
d = right(a,9)
document.write "Lijevo = " & c & "<br>"
document.write "Desno = " & d & "<br>"
document.write "Sredina rijeci = " & mid(a,3,5) & "<br>"
document.write " Promjena rijeci = " & replace(a
,"ljudovi","slonovi",1,-1,1) & "<br>"
document.write " Promjena taga italic u bold = " &
replace("<i>Italic</i>","i>","b>") & "<br>"
document.write " Okretanje rijeci naopako = " & StrReverse(a) & "<br>"
5
6. Baze podataka VBScript
document.write " Ponavljanje vise puta = " & String(3,13) & "<br>"
document.write " ASCII kod od 'A' = " & asc("A") & "<br>"
document.write " 65 u ASCII kodu je = " & chr(65) & "<br>"
document.write " Brisanje razmaka bok
ljudovi ! u = " & trim(a) & "<br>"
msgbox " Razmaci = " & space(20) & "Kraj"
end sub
//-->
</script>
</head>
<body bgcolor="#658945"> <center>
</center>
</body></html>
Primjer 2:
<html>
<head>
<script language="vbscript">
<!--
sub window_onload()
a = "Nenad;Mario;Bojan;Mladen;Tomislav"
imena = split(a,";")
for i = LBound(imena) to UBound(imena)
document.write imena(i) & "<br>"
next
document.write "<hr width=10% align=left>"
for each ime in imena
document.write ime & "<br>"
next
end sub
//-->
</script>
</head>
<body>
</body></html>
6
7. Baze podataka VBScript
Pretraživanje stringova
InStr(pozicija,gdje,što, koja komparacija(0-binarno, 1-textualno, 2- baza podataka)
InStrRev(gdje,što,pozicija(-1),koja komparacija) - isto kao InStr, samo pretražuje
Odozada
Primjer:
<html>
<head>
<script language="vbscript">
<!--
sub window_onload()
a= " Dobro dosli ljudovi !"
document.write " Kljucne rijeci = " & a & "<br>"
document.write " Promjena taga italic u bold = " &
replace("<i>Italic</i>","i>","b>") & "<br>"
document.write " Promjena rijeci = " & replace(a ,"ljudovi","slonovi",1,-1,1)
& "<br>"
document.write " Trazimo na kojem mjestu pocinje rijec dosli = " &
InStr(1,a,"dosli",1) & "<br>"
document.write " Trazimo na kojem mjestu pocinje rijec dosli odozada = " &
InStrRev(a,"dosli",-1,1) & "<br>"
end sub
//-->
</script>
</head>
<body bgcolor="#658945"> <center>
</center>
</body></html>
7
8. Baze podataka VBScript
Nizovi stringa
Split- podijeli
Split(a,'';'')
a – varijabla,tj.ime niza koji razdvajamo
-razdvaja varijablu koja sadrži neko nabrajanje razdvojeno sa ; u niz
Primjer:
<html>
<head>
<script language="vbscript">
<!--
sub window_onload()
a = "Nenad;Mario;Bojan;Mladen;Tomislav"
imena = split(a,";")
for i = LBound(imena) to UBound(imena)
document.write imena(i) & "<br>"
next
document.write "<hr width=10% align=left>"
for each ime in imena
document.write ime & "<br>"
next
end sub
//-->
</script>
</head>
<body>
</body></html>
Primjer 2:
<HTML>
<TITLE>Current Date/Time 2</TITLE>
<HEAD>
<script language=vbscript>
<!--
sub b1_onclick()
8
9. Baze podataka VBScript
baza="Drazen;Davor;Nenad;Darko;Tomislav;Mario;Pero;Jura;Stevo;Branko;Branimir;Kr
eso;Bojan;Mladen"
unos=t1.value
imena = split(baza,";")
for each ime in imena
if ucase(ime)=ucase(unos) then
found = true
exit for
else
found = false
end if
next
if found then
t2.value = "Osoba postoji !"
else
t2.value = "Osoba ne postoji !"
end if
end sub
//-->
</script>
</head>
<body bgcolor=black text=white onload="t1.focus">
<br><br><br><br><br><br>
<center>
<table width=50% height=20% bgcolor=blue border=2 bordercolorlight="#c0c0c0"
bordercolordark="#505050">
<tr><td align=center><b>Unesite ime :</td>
<td align=center>
<input name="t1" type="text" value=""></td><td>
<input type="button" name=b1 value="Provjeri !">
</td></tr><tr><td></td><td align=center><b>Potvrda !<br>
<input name="t2" type="text" value="" >
</td></tr></table>
</center>
</body>
</html>
9
10. Baze podataka VBScript
Funkcije 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 :
<html>
<head>
<script language="vbscript">
<!--
sub window_onload()
a=array("Nenad","Pero","Jura","Mloaden")
for each x in a
document.write x & "<br>"
next
b=join(a,", ")
document.write "<hr width=20% align=left>" & b
end sub
//-->
</script>
</head>
<body bgcolor="#658945">
</body></html>
Filter
- iz niza izdvaja samo neke elemente, i od toga odvojenoga niza stvara
novi niz
10
11. Baze podataka VBScript
- var=Filter(niz,''što'',true,komparacija)
Primjer 1:
<html>
<head>
<script language="vbscript">
<!--
sub window_onload()
a=array("Proanima d.o.o","Gramip d.o.o","Pik Vrbovec d.o.o","Agritec
d.o.o","Pliva d.d")
x=inputbox("unesi koju vrstu firme treba")
b=filter(a,x,true,1)
for each c in b
isp = isp & c & "<br>"
next
prv.innerhtml = isp
end sub
//-->
</script>
</head>
<body bgcolor="#658945">
<p id=prv></p>
</body></html>
VARIANTI
Typename – javit će ime stringa
IsArray – da li je varijabla niz
IsNumeric – da li je varijabla broj
IsDate – da li je varijabla datum
IsEmpty – da li je polje ili neka varijabla prazna
IsNull – posebno stanje kada je polje neupotrebljivo
-različito od empty- tj. Polje nije upotrebljivo
11
12. Baze podataka VBScript
Primjer :
<html>
<head>
<script language="vbscript">
<!--
sub window_onload()
a=12.6545465465465465465465465456465465
document.write vartype(a) & "<br>"
document.write typename(a) & "<br>" & "<hr width=20% align=left>"
b=#19/9/2001#
document.write vartype(b) & "<br>"
document.write typename(b) & "<br>" & "<hr width=20% align=left>"
c=array("1","2","3")
if isarray(C) then
document.write "IsArray--Je, to je niz" & "<br>" & "<hr width=20%
align=left>"
else
document.write "Ne, to nije niz" & "<br>" & "<hr width=20% align=left >"
end if
if isdate(b) then
document.write "<body bgcolor=black text=green>" &"IsDate--Je, to je datum"
& "<br>" & "<hr width=20% align=left >"
else
document.write "Ne, to nije datum" & "<br>" & "<hr width=20% align=left > "
end if
if isnumeric(a) then
document.write "IsNumeric--Je, to je broj" & "<br>" & "<hr width=20%
align=left>"
else
document.write "Ne, to nije broj" & "<br>" & "<hr width=20% align=left>"
end if
if isempty(k) then
document.write "IsEmpty--Datum nije upisan" & "<br>" & "<hr width=20%
align=left>"
end if
l=null
12
13. Baze podataka VBScript
if isnull(l) then
document.write "IsNull--Je, null je" & "<br>" & "<hr width=20% align=left>"
end if
end sub
//-->
</script>
</head>
<body bgcolor="#658945">
<center>
<p id=prv></p>
</body></html>
Dinamički niz
Dinamički niz je niz u kojem u tijeku izvođenja programa mijenjamo broj elemenata.
DIM(6) – fiksni niz od 6 elemenata
DIM() - 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:
<html>
<head>
<script language="vbscript">
<!--
sub window_onload()
dim a()
redim preserve a(5)
ReDim Preserve a(UBound(a)+1)
document.write Ubound(a) & "<br>"
end sub
//-->
</script>
</head>
<body bgcolor="#658945">
<center>
<p id=prv></p>
</body></html>
13
14. Baze podataka VBScript
Z A K LJ U Č A K
U ovom eseju nije bilo dovoljno mesta za potpuni opis programskog jezika VBScript. Ipak,
kompletan priručnik dostupan je iz raznih izvora sa Weba (adresa
http://msdn.microsoft.com/scripting)
14