baze podataka i razvoj...
TRANSCRIPT
![Page 1: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/1.jpg)
BAZE PODATAKABAZE PODATAKA i i RAZVOJ APLIKACIJA RAZVOJ APLIKACIJA
Copyright © 2004 Laboratorija zainformacione sisteme, Fakultet organizacionih nauka
![Page 2: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/2.jpg)
2
HTML Klijent
Web ServerHTTP
Desktopaplikacija
Aplikacioni server
Bazapodataka
RMI-IIOPDCOM
ASP JSP Servlet
HTML / DHTML / XML
BC4J
Procedurebaze podataka
Web servis
COM
EJB .NET
Arhitektura za razvoj aplikacija nad bazom podataka
![Page 3: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/3.jpg)
3
Bazapodataka
APLIKACIJA
Procesor baze podataka
SQL ili poziv procedure
SUBP
SUBP Interfejsi
SQL-klijent
SQL-server
Call LevelInterface
EmbeddedSQL
SQL-klijentservisi
Udaljeni pristup
SQL ili poziv procedure
SUBP interfejsi
Lokalni pristup
Komunikacija programskih sistema sa bazom podataka
![Page 4: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/4.jpg)
4
Open Database Connectivity (ODBC) Open Database Connectivity (ODBC)
![Page 5: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/5.jpg)
5
ODBC predstavlja biblioteku standardizovanih funkcija(funkcija koje imaju tačno definisano ime, ulazne i izlazne argumente) koje su na raspolaganjuprogrameru da iz programskog koda pristupa bazamapodataka.
ODBC je API za pristup različitim, heterogenim bazamapodataka bez izmene izvornog programskog koda.
Šta je ODBC?
ODBC
![Page 6: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/6.jpg)
6
Aplikacija
ORACLE
SQL izvori podataka
ODBCInterface
ODBC Driver Manager
SQL ServerODBC Driver
ORACLEODBC Driver
...ODBC Driver
SQL Server ...
ODBC arhitektura
ODBC
![Page 7: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/7.jpg)
7
ActiveXActiveX®® Data Objects (ADO)Data Objects (ADO)
![Page 8: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/8.jpg)
8
Aplikacija
SQL podaci
ADO
OLE DB
ODBC
Ne-SQL podaci Podaci naMainframe-u
ADO arhitektura
ADO
![Page 9: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/9.jpg)
9
Connection. Predstavlja jedinstvenu sesiju ka izvoru podataka. Nad ovim objektom se može pozvati metoda Execute() koja direktno izvršava zadatu SQL naredbu.
Command. Ovaj objekat služi za pripremanje i izvršavanje SQL naredbe koja može biti parametrizovana. Objekat Commandposeduje kolekciju Parameters koja sadrži jedan ili više parametara koji su atributi klase Parameter. Vrednosti ovih atributa zadaju se u toku izvršenja programa.
Recordset. Predstavlja objekat ADO komponente koji sadrži rezultate SELECT upita nad bazom podataka i omogućava manipulaciju sa podacima redova iz rezultata.
Osnovni objekti ADO komponente su:ADO
![Page 10: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/10.jpg)
10
Osnovne karakteristike ADO komponente
'*** Deklaracija promenljivihDim objKonekcija As ADODB.ConnectionDim strKonekcija As String
'*** Instanciranje objekta konkecijeSet objKonekcija = New ADODB.Connection
'*** Postavljanje parametara potrebnih za otvaranje konekcijestrKonekcija="Provider=sqloledb;DataSource=DBServer;Initial Catalog=Test;User Id=sa;Password=sa;"
'*** Otvaranje konekcijeobjKonekcija.Open strKonekcija
ADO
![Page 11: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/11.jpg)
11
Osnovne karakteristike ADO komponente
Dim objKomandaRacun As ADODB.Command
Set objKomandaRacun = New ADODB.CommandobjKomandaRacun.ActiveConnection = objKonekcijaobjKomandaRacun.CommandType = adCmdText
objKomandaRacun.CommandText="UPDATE Racun SETUkupnaVrednost=" &mUkupnaVrednost & " WHERE BrojRacuna=" & brojRacuna
'*** Izvršenje komandeobjKomandaRacun.Execute
ADO
![Page 12: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/12.jpg)
12
Osnovne karakteristike ADO komponente
'*** Instanciranje i otvaranje recordset-aDim rstRacun As ADODB.Recordset
Set rstRacun = New ADODB.RecordsetSet rstRacun.ActiveConnection = objKonekcijarstRacun.CursorLocation = adUseClientrstRacun.CursorType = adOpenStaticrstRacun.LockType = adLockOptimistic
SQLupit = "SELECT * FROM Racun"
rstRacun.Open SQLupit, , , , adCmdText
Atribut CursorType uzima jednu od četiri moguće vrednostiadOpenDynamic, adOpenKeySet, adOpenStatic, adOpenForwardOnly
ADO
![Page 13: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/13.jpg)
13
Osnovne karakteristike ADO komponente
Za pozicioniranje u rekordsetu koriste se metode:MoveFirst, MoveLast, MoveNext i MovePrevious.
Za pristup vrednostima polja trenutnog rekorda u rekordsetukoristi se kolekcija Fields.
rstRacun.MoveFirstWhile Not rstRacun.EOF
brojRacuna = rstRacun.Fields(“BrojRacuna”).Valuedatum = rstRacun.Fields(“Datum”).ValuerstRacun.MoveNext
Wend
ADO
![Page 14: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/14.jpg)
14
Parametrizovane naredbe
ADO objektni model podržava izvršavanje parametrizovanihSQL naredbi.
Da bi se označilo mesto gde treba da se ubaci vrednostparametra u vreme izvršenja naredbe koristi se marker parametra (?).
Za definisanje parametra koristi se objekat Parameter.
Metoda CreateParameter() objekta Command kao argumenteima naziv parametra, tip podatka polja tabele, tip parametra(ulazni ili izlazni), kao i opciono vrednost parametra.
Da bi se naglasilo da se radi o parametrizovanoj naredbiatributu Prepared se dodeljuje vrednost True.
ADO
![Page 15: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/15.jpg)
15
Parametrizovane naredbe - primerDim brojRacuna As LongDim objKomandaRacun As ADODB.CommandDim param As ADODB.Parameter
Set objKomandaRacun = New ADODB.CommandobjKomandaRacun.ActiveConnection = objKonekcijaobjKomandaRacun.CommandText="DELETE FROM Racun WHERE
BrojRacuna = ?"objKomandaRacun.CommandType = adCmdTextobjKomandaRacun.Prepared = True
Set param= objKomandaRacun.CreateParameter("pBrojRacuna",adBigInt, adParamInput)
objKomandaRacun.Parameters.Append parambrojRacuna=893objKomandaRacun.Parameters("pBrojRacuna").Value=brojRacuna
objKomandaRacun.Execute
ADO
![Page 16: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/16.jpg)
16
Poziv procedura baze podataka - primer
Set objKomandaRacun = New ADODB.CommandobjKomandaRacun.ActiveConnection = objKonekcijaobjKomandaRacun.CommandText = “IzracunajIznos”objKomandaRacun.CommandType = adCmdStoredProc
Set param= objKomandaRacun.CreateParameter("pBrojRacuna",adBigInt, adParamInput)
objKomandaRacun.Parameters.Append paramobjKomandaRacun.Parameters("pBrojRacuna").Value = 750
Set param= objKomandaRacun.CreateParameter("pIznos",adCurrency, adParamOutput)
objKomandaRacun.Parameters.Append param
objKomandaRacun.Execute
ADO
![Page 17: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/17.jpg)
17
Ažuriranje tabele baze podataka prekorezultujućeg seta - primer
Set rstRacun = New ADODB.RecordsetSet rstRacun.ActiveConnection = objKonekcijarstRacun.CursorLocation = adUseClientrstRacun.CursorType = adOpenStaticrstRacun.LockType = adLockOptimistic
rstRacun.Open "SELECT * FROM Racun", , , , adCmdText
rstRacun.AddNewrstRacun("BrojRacuna") = brojRacunarstRacun("Datum") = DatumrstRacun("NazivKupca") = NazivKupcarstRacun("Napomena") = NapomenarstRacun.Update
ADO
![Page 18: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/18.jpg)
18
Upravljanje transakcijama
'*** Otpočinjanje transakcijeobjKonekcija.BeginTrans
... izvršavanje SQL naredbi ...
'*** Potvrđivanje transakcijeobjKonekcija.CommitTrans
ili
'*** Poništavanje transakcijeobjKonekcija.RollbackTrans
ADO
![Page 19: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/19.jpg)
19
Perzistentnost rekordseta
'*** Snimanje sadržaja rekordseta u XML formaturstSporniRacuni.Save"C:\Temp\SporniRacuni.xml", adPersistXML
'*** Preuzimanje sadržaja XML datoteke u novi rekordsetrstRacuni.Open "C:\Temp\SporniRacuni.xml"
ADO
![Page 20: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/20.jpg)
20
Java Database Connectivity (JDBC) Java Database Connectivity (JDBC)
![Page 21: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/21.jpg)
21
JDBC (Java Database Connectivity) je standardni Java interfejs za povezivanje Jave sa relacionim bazama podataka definisan od strane Sun Microsystems.
JDBC omogućava Java aplikacijama, apletima iservletima pristup bazama podataka kao i drugimtabelaranim izvorima podataka.
Šta je JDBC?
JDBC
![Page 22: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/22.jpg)
22JDBC arhitektura
JDBC
Java Application
JDBC Driver Manager
JDBCAPI
JDBC-NetDriver
JDBC-ODBCBridge Driver
ODBC Drivers
Nativ-APIdriver
(party-Java)
Nativ-protocoldriver
JDBCMiddleware
ProtocolOdgovarajuci SUBP protokoli
AlternativeimplementacijeJDBC drajvera
![Page 23: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/23.jpg)
23
'*** Registrovanje ORACLE drajveraDriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver());
'*** Uspostavljanje konekcije sa bazom podatakaConnection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@zmaj:1521:baza","korisnik","lozinka");
'*** Kreiranje naredbeStatement stmt = conn.createStatement();
'*** Izvršenje naredbestmt.executeUpdate("UPDATE Racun SET ukupanIznos="+ lUkIzn
+" WHERE brojRacuna = "+ broj);
JDBC
![Page 24: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/24.jpg)
24
'*** Rad sa rezultujućim setomResultSet rs = stmt.executeQuery("SELECT sifraProizvoda,
kolicina FROM StavkaRacuna WHERE brojRacuna = “ + broj);
while(rs.next())
{long lSifPrz = rs.getLong(1);BigDecimal lKol = rs.getDouble(2);
}
JDBC
![Page 25: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/25.jpg)
25
'*** Parametrizovane naredbePreparedStatement pst = conn.prepareStatement("INSERT INTO StavkaRacuna (brojRacuna, rbStavke,
sifraProizvoda, kolicina) VALUES(?,?,?,?)");pst.setBigDecimal(1, new BigDecimal(10);
pst.setLong(2,(long)1);pst.setLong(3,(long)55);pst.setDouble(4,(double)3*2.5);
pst.executeUpdate();
'*** Poziv procedura baze podatakaCallableStatement cstmt =
con.prepareCall("{call izracunajIznos(?, ?)}");cstmt.registerOutParameter(1, java.sql.Types.TINYINT);
cstmt.registerOutParameter(2, java.sql.Types.DECIMAL);ResultSet rs = cstmt.executeQuery();
JDBC
![Page 26: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/26.jpg)
26
'*** Ažuriranje tabele baze podataka preko rezultujućeg setaStatement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = executeQuery(“SELECT brojaRacuna, datum,nazivKupca, ukupanIznos as iznos FROM Racun”);
rs.moveToInsertRow(); rs.updateInt("brojRacuna", 15);rs.updateDate("datum”,’2003-04-01");rs.updateString("nazivKupca", "Mica");rs.updateFloat("iznos", 10.50f);
rs.insertRow();
'*** Upravljanje transakcijamaconn.setAutoCommit(false);...
// naredbe
...conn.commit(); // ili conn.rollback();
JDBC
![Page 27: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/27.jpg)
27
ADO.NET
![Page 28: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/28.jpg)
28
ADO.NET
ADO.NET je dizajniran za korišćenje kako u intranet tako i u Internet aplikacijama
Najprimetnija razlika je između objekata ADO Recordset-a i .NET DataSet-a
Recordset sadrži rezultat jednog upita i najčešće održavaotvorenu konekciju ka bazi podataka nad kojom je izvršenupit
DataSet može sadržati rezultate više upita, čak iz različitihizvora podataka
DataSet je praktično memorijski keš za podatke izrazličitih izvora
ADO.NET
![Page 29: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/29.jpg)
29
ADO.NETADO.NET
DBMS
XMLDokument
.NET Managed Code
.NET Provider
Connection
Command
DataAdapter
Client
DataSet
DataTables
DataRelation
ADO.NET arhitektura
![Page 30: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/30.jpg)
30
ADO.NET – primer – str. 1
using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.Data.SqlClient;...
ADO.NET
![Page 31: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/31.jpg)
31
ADO.NET – primer – str. 2
...namespace DemoRezervacija{
/// <summary>/// Summary description for WebForm1./// </summary>public class Rezervacija : System.Web.UI.Page{protected System.Web.UI.WebControls.TextBox txt_HotelID;protected System.Web.UI.WebControls.TextBox txt_DatumOd;protected System.Web.UI.WebControls.TextBox txt_DatumDo;protected System.Web.UI.WebControls.TextBox txt_TipSobe;protected System.Web.UI.WebControls.TextBox txt_BrojOsoba;protected System.Web.UI.WebControls.LinkButton LBtn_Dodaj;protected System.Web.UI.HtmlControls.HtmlGenericControl Message;
...
ADO.NET
![Page 32: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/32.jpg)
32
ADO.NET – primer – str. 3...
#region Web Form Designer generated codeoverride protected void OnInit(EventArgs e){//// CODEGEN: This call is required by the ASP.NET Web Form Designer.//
InitializeComponent();base.OnInit(e);
}private void InitializeComponent(){ this.LBtn_Dodaj.Click+=new System.EventHandler(this.LBtn_Dodaj_Click);this.Load += new System.EventHandler(this.Page_Load);}#endregion
...
ADO.NET
![Page 33: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/33.jpg)
33
ADO.NET – primer – str. 4...
private void LBtn_Dodaj_Click(object sender, System.EventArgs e){
Message.InnerHtml = "";
string connstring = "data source=NS1;initial catalog=SrX_db;persist security info=False;user id=sa;password=sa;workstation id=SMAK;packet size=4096";
SqlConnection conn = new SqlConnection(connstring);
...
ADO.NET
![Page 34: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/34.jpg)
34
ADO.NET – primer – str. 5...
SqlCommand command = new SqlCommand("Dodaj_Rezervaciju", conn);command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@DatumOd",System.Data.SqlDbType.SmallDateTime, 4));command.Parameters["@DatumOd"].Value = txt_DatumOd.Text;
command.Parameters.Add(new SqlParameter("@DatumDo",System.Data.SqlDbType.SmallDateTime, 4));command.Parameters["@DatumDo"].Value = txt_DatumDo.Text;
command.Parameters.Add(new SqlParameter("@HotelID",System.Data.SqlDbType.Int, 4));command.Parameters["@HotelID"].Value = txt_HotelID.Text;
command.Parameters.Add(new SqlParameter("@TipSobe",System.Data.SqlDbType.Int, 4));command.Parameters["@TipSobe"].Value = txt_TipSobe.Text;
command.Parameters.Add(new SqlParameter("@BrOsoba",System.Data.SqlDbType.Int, 4));command.Parameters["@BrOsoba"].Value = txt_BrojOsoba.Text;
...
ADO.NET
![Page 35: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/35.jpg)
35
ADO.NET – primer – str. 6...
command.Connection.Open();
SqlTransaction trans;
trans = command.Connection.BeginTransaction();
command.Transaction = trans;
...
ADO.NET
![Page 36: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/36.jpg)
36
ADO.NET – primer – str. 7...
try{
command.ExecuteNonQuery();trans.Commit();Message.InnerHtml = "<b>Rezervacija je dodata!</b>";
}catch (SqlException sqlex){
if (sqlex.Number == 2627)Message.InnerHtml="GRESKA: Zapis vec postoji sa tim
primarnim kljucem!"; Message.Style["color"] = "red";trans.Rollback();
}...
ADO.NET
![Page 37: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/37.jpg)
37
ADO.NET – primer – str. 8...
catch (Exception){
Message.InnerHtml="GRESKA: Ne mozes dodati rekord, proveri da li si ispravno uneo podatke!";
Message.Style["color"] = "red";trans.Rollback();
}command.Connection.Close();
}}}
ADO.NET
![Page 38: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/38.jpg)
38
Ada, C, Cobol, Fortran, Pascal, PL/I
Naredbe programskog jezika koje se koriste, tzv. "jezika domaćina" i SQL su "pomešane“
Kombinovanje naredbi jezika treće generacije i SQL-a omogućava, s jedne strane korišćenje proceduralnih karakteristika jezika treće generacije (sekvenca, selekcija, iteracija, procedura, podprogram), a sa druge strane pristup podacima u bazi podataka pomoću SQL-a.
SQL unutar klasičnih programskih jezika:Embedded SQL
![Page 39: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/39.jpg)
39
Istovremenu obradu podataka u bazi podataka i podataka u datotekama operativnog sistema
Korišćenje rekurzivnih podprograma, najčešće za obradu hijerarhijskih ili mrežnih struktura podataka (organizaciona struktura, sastavnica proizvoda, itd.)
Korišćenje dinamičkog SQL-a (SQL naredbe se definišu u vreme izvršavanja programa, a ne u vreme prevođenja)
Korišćenje DDL (Data Definition Language) naredbi za kreiranje i izmenu objekata baze podataka
Programi pisani pomoću ugrađenog SQL-a omogućavaju: :Embedded SQL
![Page 40: BAZE PODATAKA i RAZVOJ APLIKACIJAdownload.tutoriali.org/Tutorials/Baze_podataka/Baze_podataka_i... · 3 Baza podataka APLIKACIJA Procesor baze podataka SQL ili poziv procedure SUBP](https://reader034.vdocuments.site/reader034/viewer/2022042600/5a789a4e7f8b9a7b698d6b67/html5/thumbnails/40.jpg)
40
Embedded SQL
SQL bibliotekafunkcija
Jezik domacin+
SQL naredbePretprocesor Izvršni program
(aplikacija)
Jezik domacin+
Pozivi funkcija
Prevodilacjezika
domacina
Baza podataka
Sintaksna i semantickaprovera
Procesiranje aplikacinog programa sa SQL-om unutar programskih jezika