käännös käännösvaiheessa tarkasettaan linkitys



Samankaltaiset tiedostot
Sovellusarkkitehtuurit

RDBMS - Yhteyskäytännöt

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokantaohjelmointi Harri Laine 1. SQL:n käyttö ohjelmissa

EXEC SQL BEGIN DECLARE SECTION

Java ja tietokannan käsittely (JDBC)

Tietokannat II -kurssin harjoitustyö

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Microsoft Visual Studio 2005

SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito

8. Näppäimistöltä lukeminen 8.1

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

14. Poikkeukset 14.1

Java-API, rajapinnat, poikkeukset, UML,...

Rajapinta (interface)

15. Ohjelmoinnin tekniikkaa 15.1

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

14. Poikkeukset 14.1

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Olio-ohjelmointi Javalla

8. Näppäimistöltä lukeminen 8.1

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

Olio-ohjelmointi Virhetilanteiden käsittely

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

T Henkilökohtainen harjoitus: FASTAXON

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Harjoitus 2. Harjoitus 3

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

11. Javan valintarakenteet 11.1

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

5. HelloWorld-ohjelma 5.1

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

5. HelloWorld-ohjelma 5.1

Poikkeustenkäsittely

Taulukoiden käsittely Javalla

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Java-kielen perusteita

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

13. Loogiset operaatiot 13.1

15. Ohjelmoinnin tekniikkaa 15.1

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

12. Näppäimistöltä lukeminen 12.1

JavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko

Ohjelmointi 2 / 2010 Välikoe / 26.3

Listarakenne (ArrayList-luokka)

Delegaatit ja tapahtumakäsittelijät

Tietorakenteet (syksy 2013)

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

11. Javan valintarakenteet 11.1

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Metodien tekeminen Javalla

Microsoft Visual J++ ohjelmointiympäristö

TIETORAKENTEET JA ALGORITMIT

12. Monimuotoisuus 12.1

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

TIETOKANTOJEN PERUSTEET MARKKU SUNI

58131 Tietorakenteet ja algoritmit (syksy 2015)

YHTEYSSUHDE (assosiation)

1. Omat operaatiot 1.1

14. Hyvä ohjelmointitapa 14.1

Digitaalisen median tekniikat. JSP ja XML

Tietokannan webbikytkentä. Janne Petäjä

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

PostgreSQL:n ja JDBC-ajurin asennus- ja käyttöohje

HELIA 1 (11) Outi Virkki Tiedonhallinta

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Mikä yhteyssuhde on?

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

7. Näytölle tulostaminen 7.1

13. Loogiset operaatiot 13.1

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

1 Tehtävän kuvaus ja analysointi

13. Hyvä ohjelmointitapa (osa 1) 13.1

Transkriptio:

Upotettu SQL Ohjelmoitaessa 3GL kielillä, käytetään relaatiotietokantaa yleensä esikääntäjien avulla. Tietokannan valmistaja toimittaa funktiokirjaston, jota esikääntäjän avulla hyödynnetään. Ongelmaksi muodostuu tällöin se, että eri tietokantavalmistajien funktiokirjastot eivät ole yhteensopivia, vaan ohjelmat tulee kääntää ja mahdollisesti modifioida siirryttäessä tietokantaympäristöstä toiseen, sama toimnepide täytyy tehdä toisinaan myös siirryttäessä saman tuotteen tietokantaversiosta toiseen. SQL-editor SQLkomento Isäntäkielen ohjelmointi: ohjelmaan lisätään myös SQL esikäännös, jolloin koodiin liitetään SQL- osuuden vaatimat funktiokutsut lähdekoodi+call-lauseet käännös TIETOKANTA käännösvaiheessa tarkasettaan objelmamoduulit.... SQLkirjasto linkitys suoritettava ohjelma Esimerkki SQLn käytöstä COBOL ohjelmassa MOVE -1 TO palkka-ilm MOVE 0 TO kun-ilm... EXEC SQL INSERT INTO HH.TYONTEK (tt_no, nimi, kotikunta, postinumero, palkka) VALUES (:TT-NO, :NIMI, :KUNTA :kun-ilm, :POSTINRO, :PALKKA :palkka-ilm) END-EXEC IF SQLCODE NOT = 0...

ODBC (Open Database Connectivity) Microsoftin toteuttama ODBC- rajapinta relaatiotietokantojen käyttämiseksi on toteutus X/OPEN Sql Access Group (SAG) määrittelemästä SQL CLI standardista. Standardin tarkoitus on yksinkertaistaa tietokantojen käyttöä sovellusohjelman kannalta. ODBC-rajapintaa käyttämällä ohjelmaa tehtäessä ei tarvitse periaatteessa tietää, minkä valmistajan relaatiokantaa käytetään, vaan sovellus käyttää kaikkia kantoja samalla tavoin. Tietokantatuotteiden valmistajat (tai muut ohjelmistotuottajat) puolestaan valmistavat toimivat ajurit erikseen kullekin tietokantatuotteelle. Sovellusohjelmat käyttävät ODBC.DDL:n tarjoamaa rajapintaa. ODBC-ajurit huolehtivat siitä, että eri tietokantatuotteiden erityisominaisuudet otetaan huomioon; niiden tulee esimerkiksi muuntaa ODBC-määrittelyn mukaiset funktiot tietokantatuotteessa oleviksi vastaaviksi funktioiksi, koska eri tietokantatuotteissa on samoja toimintoja tekevillä funktioilla eri nimiä. Ajurit tekevät myös tiedon esitystapojen eroista johtuvat muunnokset. ODBC- ajurit huolehtivat lisäksi tietokantayhteyksien luonneista ja puruista sekätapahtumakäsittelystä. FAP (Formats And Protocols) huolehtii verkkoyhteyksistä kunkin tuotteen mukaisesti. DBMS- tietokantaohjelmat toteuttavat ODBC-rajapinnan kautta ohjelmoidut toimenpiteet riippuen siitä, mitä toimintoja kanta tarjoaa. Jos kannan ominaisuuksiin ei kuulu jokin ODBC-rajapinnan mukainen toiminto, ei sitä tällöin voida toteuttaa.

ODBC määrittelee ajureille kaksi eri kyvykkyystasoa. Kirjassa on sivulla 498-499 SQL kieliopin mukainen luokittelu ja seuraavassa on ODBC APIn luokittelu CORE 0 taso: (Level 0, X/Open SAG CLI May92) Ympäristön (env.), yhteyden (connection) ja komennon (statm.) kahvat (handle) Yhteyden luonti; yhteyden aikana voidaan käsitellä useita komentoja SQL-komentojen parametrointi, kääntö ja suoritus (dynaaminen SQL) Tulosjoukon (result set) staattinen kohdistinkäsittely Tapahtumahallinta (Commit, Rollback) Virheilmaisintietojen käytettävyys LEVEL 1: ODBC-palvelutasotietojen ja tuettujen tietotyyppien luku (SQLGet..Info) Yhteystietojen ja komennon optioiden hallinta Sarakearvojen osien hallinta (tarpeen LONG- ja BLOB-tietomuodoissa) Talletusrakennetietojen luku ODBC-systeemitaulustosta LEVEL 2: Parametri- ja tulostaulukoiden käsittely Parametritietojen hallinta Ohjattava kohdistin Oikeus-, avain- ja proseduuritietojen luku Kohdejärjestelmälle muunnetun SQL-komennon luku Esimerkki (VB) Option Explicit Private Sub Form_Load() Dim db As Database Dim rs As Recordset Dim wk As Workspace Dim omavirhe As Error On Error GoTo Virhe Set wk = DBEngine.CreateWorkspace("", "", "", dbuseodbc) wk.defaultcursordriver = dbuseodbc Set db = wk.opendatabase("", False, False, "ODBC;DSN=MinunKanta") Set rs = db.openrecordset("select * from omataulu", dbopendynaset, _ 0, dboptimistic) rs.edit rs.fields("nimi") = "Muutos tähän" rs.update rs.movenext Exit Sub Virhe: MsgBox Errors.Count For Each omavirhe In Errors MsgBox VIRHE.numero & " " & omavirhe.description Next End Sub

ODBC:n käyttö Microsoft ympäristössä:

JDBC (Java Database Connectivity) Javakieleen on kehitetty JDBC, joka on ODBC-rajapintaa vastaava menettely. Jos jollekin tuotteelle ei ole olemassa JDBC-ajureita, voidaan JDBC toteuttaa myös tuotteelle olevan ODBC- ja javan ODBC-bridge ajureiden avulla. JDBC- ajureita voidaan käyttää vain java-kielessä. JDBC-yhteydet tietokantoihin voidaan luoda erilaisista javan toteutusympäristöistä, kuten sovelluksista (applications), sovelmista (applets), servleteistä, JSP:stä sekä JavaBeans- ja EJB-komponenteista.

Esimerkki:/* based on material in JDBC Tutorial by Sun import java.io.*; import java.sql.*; public class kasittely { public static void main (String args[]) throws Exception { java.sql.connection conn; java.sql.resultsetmetadata meta; java.sql.statement stmt; java.sql.resultset result; int i; Class.forName("solid.jdbc.SolidDriver"); System.out.println("Driver succesfully registered."); String scon = "jdbc:solid://localhost:1313/sql/sql"; // next, the connection is attempted conn = java.sql.drivermanager.getconnection(scon); try { String updatesales = "UPDATE COFFEES SET SALES = 75 WHERE COF_NAME = Colombian "; stmt= conn.createstatement(); stmt.executeupdate(updatesales); result = stmt.executequery("select * from COFFEES "); meta = result.getmetadata(); int cols = meta.getcolumncount();. // and finally, we dump the result set System.out.println("Starting to dump resultset."); int cnt = 1; while(result.next()) { System.out.print("\nRow "+cnt+" : "); for (i=1; i <= cols; i++) { System.out.print(result.getString(i)+"\t"); } cnt++; } result.close(); stmt.close(); } catch (SQLException ex) {