41
BAZE PODATAKA BAZE PODATAKA i i RAZVOJ APLIKACIJA RAZVOJ APLIKACIJA

BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

  • Upload
    vuquynh

  • View
    234

  • Download
    4

Embed Size (px)

Citation preview

Page 1: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

BAZE PODATAKABAZE PODATAKA i i RAZVOJ APLIKACIJA RAZVOJ APLIKACIJA

Page 2: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

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 APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

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 APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

4

Razlikujemo:

1. Distribuirane baze i

2. Klijent-server okruženje (razne vrste)

Distribuirane baze – ostvarivanje transparentnosti d istribucije

• Razne vrste Middleware: složenih komponenti za komunikaciju sa distribuiranim objektima

- CORBA

- .NET

- EJB

Klijent-server okruženja:

• Ostvarivanje konekcije sa BP

• Call-Level Interface (CLI)

- ODBC

- ADO

- JDBC

- ADO.NET

Page 5: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

5

1. Open Database Connectivity 1. Open Database Connectivity (ODBC) (ODBC)

Page 6: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

6

� 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 7: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

7

Aplikacija

ORACLE

SQL izvori podataka

ODBCInterface

ODBC Driver Manager

SQL ServerODBC Driver

ORACLEODBC Driver

...ODBC Driver

SQL Server ...

ODBC arhitektura

ODBC

Page 8: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

8

2. ActiveX2. ActiveX ®® Data Objects Data Objects (ADO)(ADO)

Page 9: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

9

Aplikacija

SQL podaci

ADO

OLE DB

ODBC

Ne-SQL podaciPodaci na

Mainframe-u

ADO arhitektura

ADO

Page 10: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

10

� 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 11: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

11

Osnovne karakteristike ADO komponente

'*** Deklaracija promenljivihDim objKonekcija As ADODB.Connection

Dim strKonekcija As String

'*** Instanciranje objekta konkecijeSet objKonekcija = New ADODB.Connection

'*** Postavljanje parametara potrebnih za otvaranje konek cijestrKonekcija="Provider=sqloledb;DataSource=DBServer ;Initial Catalog=Test;User Id=sa;Password=sa;"

'*** Otvaranje konekcijeobjKonekcija.Open strKonekcija

ADO

Page 12: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

12

Dim objKomandaRacun As ADODB.Command

Set objKomandaRacun = New ADODB.Command

objKomandaRacun.ActiveConnection = objKonekcija

objKomandaRacun.CommandType = adCmdText

objKomandaRacun.CommandText="UPDATE Racun SETUkupnaVrednost=" &

mUkupnaVrednost & " WHERE BrojRacuna=" & brojRacuna

'*** Izvršenje komandeobjKomandaRacun.Execute

ADO

Page 13: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

13

'*** Instanciranje i otvaranje recordset-aDim rstRacun As ADODB.Recordset

Set rstRacun = New ADODB.Recordset

Set rstRacun.ActiveConnection = objKonekcija

rstRacun.CursorLocation = adUseClient

rstRacun.CursorType = adOpenStatic

rstRacun.LockType = adLockOptimistic

SQLupit = "SELECT * FROM Racun"

rstRacun.Open SQLupit, , , , adCmdText

Atribut CursorType uzima jednu od četiri mogu će vrednostiadOpenDynamic, adOpenKeySet, adOpenStatic, adOpenForwardOnly

ADO

Page 14: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

14

Za pozicioniranje u rekordsetu koriste se metode:MoveFirst, MoveLast, MoveNext i MovePrevious.

Za pristup vrednostima polja trenutnog rekorda u rekordsetukoristi se kolekcija Fields.

rstRacun.MoveFirst

While Not rstRacun.EOF

brojRacuna = rstRacun.Fields(“BrojRacuna”).Value

datum = rstRacun.Fields(“Datum”).Value

rstRacun.MoveNext

Wend

ADO

Page 15: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

15

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 paramet ra(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 16: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

16

Parametrizovane naredbe - primerDim brojRacuna As Long

Dim objKomandaRacun As ADODB.Command

Dim param As ADODB.Parameter

Set objKomandaRacun = New ADODB.Command

objKomandaRacun.ActiveConnection = objKonekcija

objKomandaRacun.CommandText="DELETE FROM Racun WHERE

BrojRacuna = ?"

objKomandaRacun.CommandType = adCmdText

objKomandaRacun.Prepared = True

Set param= objKomandaRacun.CreateParameter("pBrojRac una",adBigInt, adParamInput)

objKomandaRacun.Parameters.Append param

brojRacuna=893

objKomandaRacun.Parameters("pBrojRacuna").Value=bro jRacuna

objKomandaRacun.Execute

ADO

Page 17: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

17

Poziv procedura baze podataka - primer

Set objKomandaRacun = New ADODB.Command

objKomandaRacun.ActiveConnection = objKonekcija

objKomandaRacun.CommandText = “IzracunajIznos”

objKomandaRacun.CommandType = adCmdStoredProc

Set param= objKomandaRacun.CreateParameter("pBrojRac una",

adBigInt, adParamInput)

objKomandaRacun.Parameters.Append param

objKomandaRacun.Parameters("pBrojRacuna").Value = 75 0

Set param= objKomandaRacun.CreateParameter("pIznos",

adCurrency, adParamOutput)

objKomandaRacun.Parameters.Append param

objKomandaRacun.Execute

ADO

Page 18: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

18

Ažuriranje tabele baze podataka prekorezultuju ćeg seta - primer

Set rstRacun = New ADODB.Recordset

Set rstRacun.ActiveConnection = objKonekcija

rstRacun.CursorLocation = adUseClient

rstRacun.CursorType = adOpenStatic

rstRacun.LockType = adLockOptimistic

rstRacun.Open "SELECT * FROM Racun", , , , adCmdText

rstRacun.AddNew

rstRacun("BrojRacuna") = brojRacuna

rstRacun("Datum") = Datum

rstRacun("NazivKupca") = NazivKupca

rstRacun("Napomena") = Napomena

rstRacun.Update

ADO

Page 19: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

19

Upravljanje transakcijama

'*** Otpo činjanje transakcijeobjKonekcija.BeginTrans

... izvršavanje SQL naredbi ...

'*** Potvr ñivanje transakcijeobjKonekcija.CommitTrans

ili

'*** Poništavanje transakcijeobjKonekcija.RollbackTrans

ADO

Page 20: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

20

Perzistentnost rekord seta

'*** Snimanje sadržaja rekordseta u XML formaturstSporniRacuni.Save"C:\Temp\SporniRacuni.xml", adPe rsistXML

'*** Preuzimanje sadržaja XML datoteke u novi rekordsetrstRacuni.Open "C:\Temp\SporniRacuni.xml"

ADO

Page 21: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

21

3. Java Database Connectivity 3. Java Database Connectivity (JDBC) (JDBC)

Page 22: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

22

� 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, apletimai servletima pristup bazama podataka kao i drugim tabelaranim izvorima podataka.

Šta je JDBC?JDBC

Page 23: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

23

JDBC 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 24: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

24

'*** 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="+ lUk Izn

+" WHERE brojRacuna = "+ broj);

JDBC

Page 25: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

25

'*** Rad sa rezultuju ćim setomResultSet rs = stmt.executeQuery("SELECT sifraProizvod a,

kolicina FROM StavkaRacuna WHERE brojRacuna = “ + broj);

while(rs.next())

{

long lSifPrz = rs.getLong(1);

BigDecimal lKol = rs.getDouble(2);

}

JDBC

Page 26: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

26

'*** 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.TINYIN T);

cstmt.registerOutParameter(2, java.sql.Types.DECIMA L);

ResultSet rs = cstmt.executeQuery();

JDBC

Page 27: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

27

'*** 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 28: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

28

4. ADO.NET

Page 29: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

29

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 30: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

30

ADO.NETADO.NET

DBMS

XMLDokument

.NET Managed Code

.NET Provider

Connection

Command

DataAdapter

Client

DataSet

DataTables

DataRelation

ADO.NET arhitektura

Page 31: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

31

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 32: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

32

ADO.NET – prime r – str. 2

...

namespace DemoRezervacija

{

/// <summary>

/// Summary description for WebForm1.

/// </summary>

public class Rezervacija : System.Web.UI.Page

{

protected System.Web.UI.WebControls.TextBox txt_Hote lID;

protected System.Web.UI.WebControls.TextBox txt_Datu mOd;

protected System.Web.UI.WebControls.TextBox txt_Datu mDo;

protected System.Web.UI.WebControls.TextBox txt_TipS obe;

protected System.Web.UI.WebControls.TextBox txt_Broj Osoba;

protected System.Web.UI.WebControls.LinkButton LBtn_ Dodaj;

protected System.Web.UI.HtmlControls.HtmlGenericCon trol Message;

...

ADO.NET

Page 33: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

33

ADO.NET – primer – str. 3

...

#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET We b 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 34: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

34

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 35: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

35

ADO.NET – primer – str. 5...

SqlCommand command = new SqlCommand("Dodaj_Rezervaci ju", conn);

command.CommandType = CommandType.StoredProcedure;

command.Parameters.Add(new SqlParameter("@DatumOd",

System.Data.SqlDbType.SmallDateTime, 4));

command.Parameters["@DatumOd"].Value = txt_DatumOd.T ext;

command.Parameters.Add(new SqlParameter("@DatumDo",

System.Data.SqlDbType.SmallDateTime, 4));

command.Parameters["@DatumDo"].Value = txt_DatumDo.T ext;

command.Parameters.Add(new SqlParameter("@HotelID",

System.Data.SqlDbType.Int, 4));

command.Parameters["@HotelID"].Value = txt_HotelID.T ext;

command.Parameters.Add(new SqlParameter("@TipSobe",

System.Data.SqlDbType.Int, 4));

command.Parameters["@TipSobe"].Value = txt_TipSobe.T ext;

command.Parameters.Add(new SqlParameter("@BrOsoba",

System.Data.SqlDbType.Int, 4));

command.Parameters["@BrOsoba"].Value = txt_BrojOsoba .Text;

...

ADO.NET

Page 36: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

36

ADO.NET – primer – str. 6

...

command.Connection.Open();

SqlTransaction trans;

trans = command.Connection.BeginTransaction();

command.Transaction = trans;

...

ADO.NET

Page 37: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

37

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 timprimarnim kljucem!";

Message.Style["color"] = "red";

trans.Rollback();

}

...

ADO.NET

Page 38: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

38

ADO.NET – primer – str. 8

...catch (Exception){

Message.InnerHtml="GRESKA: Ne mozesdodati rekord, proveri da li si ispravnouneo podatke!";

Message.Style["color"] = "red";trans.Rollback();

}command.Connection.Close();

}}

}

ADO.NET

Page 39: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

39

� 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 40: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

40

� 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 41: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J

41

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