Visual Basic Script.pdf

Embed Size (px)

Citation preview

  • 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 &nbsp input type=text name="t1" size=10>&nbsp   &nbsp &nbspB&nbsp input type=text name="t3" size=10>&nbsp=&nbsp 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="">&nbsp ;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”>"



    &nbsp ; &nbsp ; &nbsp ; &nbsp ;

    Fi l e Name: &nbsp ;

    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�