+ All Categories
Home > Documents > BAZE PODATAKA i RAZVOJ...

BAZE PODATAKA i RAZVOJ...

Date post: 06-Feb-2018
Category:
Upload: phamxuyen
View: 240 times
Download: 4 times
Share this document with a friend
40
BAZE PODATAKA BAZE PODATAKA i i RAZVOJ APLIKACIJA RAZVOJ APLIKACIJA Copyright © 2004 Laboratorija za informacione sisteme, Fakultet organizacionih nauka
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Recommended