Kliens oldali SQL-API



Hasonló dokumentumok
Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

Adatbázisok webalkalmazásokban

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

Database Systems II. ZH összefoglaló

GEIAL Kovács László. GEIAL Kovács László GEIAL Kovács László

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

B IT MAN 65/1. Adatbázis Rendszerek II. Ellenőrző kérdések APLSQL B IT MAN. v:

SQL OO elemei aktív komponensek

Tranzakciókezelés PL/SQL-ben

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) ABR 2( Adatbázisrendszerek 2) 2. Előadás: Tárolt eljárások

Haladó DBMS ismeretek 1

B I T M A N B I v: T M A N

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

MDAC - Microsoft Data Access Components

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {


Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

B I T M A N B I v: T M A N

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

Adatbázis kezelés Delphiben. SQL lekérdezések

PL/SQL (folytatás) Kurzorok, függvények, eljárások

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Kalmár György Adatbázis alapú rendszerek

Adatbázis Rendszerek II. 4. Ea: MySQL Tárolt eljárások 110/1 B IT MAN

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

B I T M A N B I v: T M A N

Adatbázisok* tulajdonságai

Együttes hozzárendelés

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai


SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő A PHP programozási nyelv JDBC, ODBC

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

Java és web programozás

Adatbázis Rendszerek II. 2. Gyakorló környezet

Adatbázis Rendszerek II. 4. PLSQL Kurzorok, hibakezelés 53/1B IT MAN

Adatbázis rendszerek I.

Java programozási nyelv 11. rész Adatbázis-programozás

Adatbázis-kezelés. Harmadik előadás

Adatbázis Rendszerek II. 8. Gyakorló környezet

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Adatbázis Rendszerek II. 6. PLSQL Triggerek 32/1B IT MAN

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

JavaServer Pages (JSP) (folytatás)

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) ABR 2( Adatbázisrendszerek 2) 3. Előadás: Tárolt eljárások (folytatás) Nézetek

Informatika terméktervezőknek

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

SQL/PSM kurzorok rész

Adatbázis rendszerek I

Adatbázis rendszerek I

Java és web programozás

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Java Programozás 10. Ea: JDBC. SQLite alapokon

Adatbázis használata PHP-ből

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A 1-1

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17


Adatbázisok kliens-szerver arhitektúrája. Copyright, 1996 Dale Carnegie & Associates, Inc.

Vizuális programozás gyakorlat

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Adatbázis-kezelés ODBC driverrel

Debreceni Egyetem Informatikai Kar TANULÓI NYILVÁNTARTÓ SZOFTVER FIREBIRD ADATBÁZIS ALKALMAZÁSÁVAL

Összefoglaló. <variable_name> [IN OUT IN OUT] <data_type> [:=<default_value>] ... <label_name>: <statements>... GOTO <label_name>;...

Java Database Connectivity (JDBC)

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Készítette: Szabóné Nacsa Rozália

A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja:

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Adatbázis rendszerek. Gyakorlati jegyzet. Készítette: Selling István

SQLServer. DB Recovery modes

Bevezetés: Relációs adatmodell

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

B I T M A N B I v: T M A N

INFORMATIKAI ALAPISMERETEK

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Adatbázis rendszerek 7. előadás State of the art

INFORMATIKAI ALAPISMERETEK

Adatbázisban tárolt kollekciók

Adatbázis rendszerek SQL nyomkövetés

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):

JAVA PROGRAMOZÁS 8.ELŐADÁS

A C# programozási nyelv alapjai

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Elemi alkalmazások fejlesztése IV.

B I T M A N B I v: T M A N

PL/SQL blokk. [címke] [DECLARE deklarációs utasítás(ok)] BEGIN végrehajtható utasítás(ok) [EXCEPTION kivételkezelő] END [név];

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Programozás és adatbázis kezelés PHP ben

Átírás:

Adatbázis rendszerek I mysql SQL program API ME- GEIAL Dr. Kovács Lászl szló

Üzleti logika elhelyezése adatbázis Kliens üzleti logika Nagy hálózati forgalom Decentralizált lt karbantartás Lassabb végrehajt grehajtás Adatbázis üzleti logika Kliens Kis hálózati forgalom Centralizált lt karbantartás Gyorsabb végrehajt grehajtás GEIAL Kovács László

Kliens oldali SQL-API E-SQL CLI O-CLI 4GL OPA EXEC SQL UPDATE tabla SET.. if (res < 0) { re = SQLEXECUTE(cs, SELECT ) re = CON.executeQuery( SELECT ) DEFINE CLASS sracs AS GRID sracs.recordsource= SELECT Sessman.save(dolgozo) SQL DBMS

Beágyazott SQL SQL parancsok kiadása programból: - gazda nyelvi környezetbe beépített SQL parancsok - beágyazott SQL : interaktív SQL szintaktikát követ - CLI: függvényeket definiál az adatkapcsolathoz 3GL program DBMS scanf( %d,&lv); INSERT INTO ARU VALUES(C.NEXTVAL,:lv); if (sqlca.errcode==0) { printf( Sikeres beszuras\n ); }

Beágyazott SQL rendszerek struktúrája Forrás állomány = gazdanyelv + SQL Előfordító Fordító Gazdanyelvi forrás Object gépi kód Linker EXE állomány DBMS Library DBMS KL

Beágyazott SQL rendszerek struktúrája Adatok fogadása - egy rekord jön át: SELECT m-lista INTO v-lista FROM ; EXEC SQL BEGIN DECLARE SECTION; int lv; EXEC SQL END DECLARE SECTION; main() { printf ( Kerem a tipust: ); scanf( %s,&tip); EXEC SQL SELECT COUNT(*), MIN(ar)INTO:db,:mar FROM AUTO WHERE tipus = :tip; printf ( Db = %d Max ar = %d\n, db, mar); }

Kurzor mechanizmus DBMS kurzor Alkalmazás EXEC SQL DECLARE CURSOR k1 FOR SELECT rsz, ar FROM auto FOR UPDATE OF ar; OPEN k1; while () { EXEC SQL FETCH k1 INTO :r1, :a1; EXEC SQL UPDATE auto SET ar=:ua WHERE CURRENT OF k1; } EXEC SQL CLOSE k1;

ODBC CLI Open Database Connectivity (MS, ~1993) Célja egységes API elérési felület biztosítása a különböző relációs jellegű adatforrások felé (a heterogenitási problémák leküzdése) ODBC Oracle SQLServer Informix DB2 Sybase VFP Access Excel Txt

ODBC CLI Elvégzendő funkciók ODBC INSERT DATETIME SQLCONNECT ISOLATION LEVEL SELCET SQLTABLES SQLCONNECT(1) SQLCONNECT(2) parancs konverzió adat konverzió kapcsolat felvétel funkció bővítés hibakezelés információ nyújtás párhuzamosság APPEND DATE CONNECT UPDATE ERROR() SELECT

ODBC CLI SQLAllocEnv(&henv); //session létesítés SQLAllocConnect(henv,&hdbc); //kapcsolat leíró foglalás SQLConnect(hdbc, (unsigned char*) HELLO,SQL_NTS,NULL,0, NULL,0); SQLAllocStmt(hdbc,&hstmt);//parancs leíró foglalás SQLExecDirect(nstmt,(unsigned char*) SELECT * FROM Minta, SQL_NTS)//parancs végrehajtás for (rc=sqlfetch(hstmt);rc==sql_success; rc=sqlfetch(hstmt)){ //rekordok lekérdezése SQLGetData(hstmt,1,SQL_C_CHAR,SzData, Siyeof(sydata),&cbData); //mező lekérdezése MessageBox(NULL,syData, ODBC,MB_OK); //az eredmény } SQLFreeStmt(hstmt,SQL_DROP); //parancs leírás SQLDisconnect(hdbe); //lekapcsolódás SQLFreeConnet(hdbe); //leíró felszabadítás SQLFreeEno(henv) //session leíró

JDBC Kapcsolati típusok D 1 JDBC D 1 Java ODBC DBMS J-Net JDBC-ODBC JDBC-DBAPI Net JDBC tiszta JDBC

JDBC API Logikailag olyan objektum szerkezet mint az ADO-nál gazdagabb metódus és tulajdonságkészlet Class. forname(.. driver ) c = DriverManager.getConnection(elérés) s = c.createstatement() r = s.executequery(parancs) r.next() r.getstrting(mezo) r.getint(mezo) try { } catch (SQLException e) { }

JDBC API public static void main(string[] args) { String url = "jdbc:odbc:hinfodbc"; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection(url, "scott","tiger"); rs = stmt.executequery("select * FROM dolgozo"); while (rs.next()) { int i = rs.getint("kod"); String s = rs.getstring("nev"); System.out.println(i + " : " + s + " : " + j); } rs.close(); stmt.close(); con.close(); } catch (SQLException ex) { System.out.println("SQL hiba:" + ex.getsqlstate()); } }

Hibernate ORM struktúra RDBMS SDM(EER) modell Mapping definíció SQL Relációs séma JDBC kód Java osztály adat Java osztály IO Interface Hibernate API Hibernate Engine GEIAL Kovács László

GEIAL Kovács László Java Peristence API @Entity public class Company { @Id @GeneratedValue int id; private String name; @Embedded private Address address; @OneToMany private Collection<Person> employees; public Company() { } public Company (final String name, final Address address, final Collection<Person> employees) { setname(name); setaddress(address); setemployees(employees); }

Java Peristence API A perzisztens egyedeket az EntityManager objektumon keresztül lehet feldolgozni EntityManager em; // set up a new entity instance Employee emp = new Employee(10); emp.setname("miller"); // egyed lementése em.persist(emp); // egyed keresése emp = em.find(employee.class, Integer.valueOf(10)); // egyed törlése em.remove(emp); GEIAL Kovács László

Tárolt eljárások kész szítése se Tárolt eljárás: a rutin kódja az adatbázisban tárolt Előnyei: Előfeldolgozott formában tárolt Gyorsabb futás Hozzáférés védelem Könnyebb adminisztrálás CREATE PROCEDURE pnmev (plista plista) BEGIN törzs END; Paraméterlista: IN név típus OUT név típus IN OUT név típus GEIAL Kovács László

Tárolt eljárások kész szítése se Tárolt függv ggvény: a rutin kódja az adatbázisban tárolt és van visszatérési si ért rtéke CREATE FUNCTION fnmev (plista plista) RETURNS típus BEGIN törzs END; A rutinok törzse kiegész szített SQL parancsokat tartalmaz Rutinok törl rlése: DROP PROCEDURE nev; DROP FUNCTION nev; Rutinok meghívása: CALL pnev (ért rtéklista); SELECT fnév(ért rtéklista); GEIAL Kovács László

Tárolt eljárások kész szítése se Változ ltozók kezelése Változ ltozó létrehoz trehozása: DECLARE vnév típus DEFAULT ért rték; Ért rtékad kadás műveletei: SET vnév = kifejezés; SELECT kifejezés INTO vnév FROM ; CREATE PROCEDURE sp1 (x VARCHAR(5)) BEGIN DECLARE xname VARCHAR(5) DEFAULT 'bob'; DECLARE xid INT; SELECT name,id INTO xname,xid FROM table1 WHERE name = x; SELECT xname; END; GEIAL Kovács László

Tárolt eljárások kész szítése se Adatok kezelése Az adatkezelő SQL parancsok közvetlen zvetlenül l végrehajthat grehajthatók IF elem: LOOP elem: IF feltétel THEN válasz ELSE válasz2 END IF; LOOP ciklusmag END LOOP; Kilépés a ciklusból: Ciklusmag ismétlése: LEAVE címke; ITERATE címke; GEIAL Kovács László

Tárolt eljárások kész szítése se Kurzor kezelése A kurzorral rekordonként olvasható be egy SELECT eredménye BEGIN DECLARE CURSOR cnev(param param) IS SELECT..; OPEN cnev(aparam aparam); LOOP FETCH cnev INTO vlista; END LOOP; CLOSE cnev; deklaráci ció nyitás kilépés a ciklusból lezárás DBMS kurzor PL/SQL blokk GEIAL Kovács László

Tárolt eljárások kész szítése se Hiba kezelése A fellépő hibákhoz eseménykezelőt lehet írni A hiba figyelmen kívül hagyása: DECLARE CONTINUE HANDLER FOR hiba válasz SQLSTATE n NOT FOUND SQLEXCEPTION SQLWARNING GEIAL Kovács László

Tárolt eljárások kész szítése se drop procedure proc1; delimiter // create procedure proc1 (in xnev char(20), in xvar char(10)) begin declare xkod int; select max(kod) into xkod from emberek; insert into emberek values (xkod+1,xnev, xvar,2000); end; // delimiter ; call proc1 ('a','b'); utasítás lezáró lokális változó lekérdezés változóba eljárás definíció vége meghívás soronkövetkező kulcsérték generálása GEIAL Kovács László

Tárolt eljárások kész szítése se drop function szrev; delimiter // create function szrev (xszov char(20)) returns char(20) begin declare xi int; declare xe char(20); set xe = ''; set xszov = rtrim(xszov); set xi = length(xszov); while xi > 0 do set xe = concat(rtrim(xe), substring(xszov,xi,1)); set xi = xi -1; end while; return xe; end; // delimiter ; select szrev( alom ); GEIAL Kovács László szó tükröző függvény készítése

DROP PROCEDURE proc2; delimiter // CREATE PROCEDURE Proc2 () BEGIN DECLARE m_kod INT; DECLARE m_fiz INT; DECLARE done INT DEFAULT 0; DECLARE C1 CURSOR FOR SELECT kod, fiz FROM dolgozo; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN C1; LOOP FETCH C1 INTO m_kod,m_fiz; IF done THEN LEAVE END IF; CASE WHEN m_fiz < 100 THEN SET m_ado = 0; ELSE SET m_ado = 40; END CASE; UPDATE dolgozo SET ado = m_ado, xx = func1(nev) WHERE kod = m_kod; END LOOP ; CLOSE C1; END; // GEIAL Kovács László delimiter ;