SQL programozási felületek

Slides:



Advertisements
Hasonló előadás
Számítógépes adatbázis-kezelés
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
2 3 4 Connection DataReader Command MapConnection MapCommand MapDataReader Store Providers (e.g. SqlClient) Mapping provider Adattár (pl. SQL Server)
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
IT-DEV-CON – Adatkezelés a felhőben Windows Phone 7 alkalmazással Tóth László
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
Socket programozás Példák
INSERT INTO Egy vagy több rekordot ad hozzá a táblához. Egyetlen rekordot hozzáfűző kifejezés: INSERT INTO cél_tábla (mező1,mező2,…) VALUES (érték1, érték2,
Neo4j bevezető Rácz Gábor
TRANZIENS ADATTÁROLÁS State objektum Egy alkalmazásszintű gyűjtemény (Dictionary), mely Tombstone esetén megőrzi tartalmát a memóriában kulcs/érték párokként.
Programrendszerek Fejlesztése 7/47/4 1. Az előző előadás tartalma: 2  XPath  XSLT  XSD.
Fejlett Programozási Technológiák II. Világos Zsolt 7. gyakorlat.
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
Adatbáziskezelés Horváth Ernő 1. Elérhetőségek Kiss Jenő Horváth Ernő Tanszéki honlap
A Java programozási nyelvSoós Sándor 1/20 Java programozási nyelv 11. rész – Adatbázis-programozás Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Osztott alkalmazások kezelése. VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) -
SQL – OLAP 8. óra.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
Delegátumok C#-ban Krizsán Zoltán iit 1.0.
ORACLE ORDBMS adminisztrációs feladatok 6. rész dr. Kovács László 2004.
Adatbázis rendszerek II
ADATBÁZISOK
Haladó Programozás Adatbázis és felhasználó létrehozása MS SQL Server alatt Adatbázisok elérése DbConnection/DbReader módszerrel (Nem tananyag!) SQL server.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
1 SQL – Structured Query Language IBM fejlesztette ki 70-es években (SEQUEL) 1986-ban lett szabvány (SQL86) SQL86, SQL89, SQL92, SQL99, SQL3, SQL2003 DDL,
Oracle multimédia Kiss Attila Információs Rendszerek Tanszék
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
Oracle – ORDMS lehetőségek UDT:- objektum típusok - kollekció típusok SQL> CREATE TYPE SZEMELY AS OBJECT ( 2 NEV VARCHAR2(20), 3 TEL VARCHAR2(14)); SQL>
VFP xBase adatkezelés - munkaterületek - DML - DDL - navigáció - eljárások, függvények - vezérlési szerkezetek - változók - képernyő IO - mintaprogram.
A megértés körei Binzberger Viktor Budapest Műszaki és Gazdaságtudományi Egyetem Filozófia és Tudománytörténet Tanszék.
PHP VI Adatbázisok, MySQL
PHP V Osztályok, Objektumok. Osztály class Person { var $name; // tulajdonság, változó function getName() { // metódus, tagfüggvény return $this->name;
Multimédiás programok készítése Macromedia Director fejlesztői környezetben 4. előadás Készítette: Kosztyán Zsolt
Windows Server 2008 { PowerShell }
Alertet indíthat egy: SQL Server esemény (LOG) SQL Server performancia érték WMI events Alert végezhet: Operátor értesítést JOB indítás (válasz az eseményre)
Java – adatbázisok elérése
Gincsai Gábor Dávid Zoltán MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási.
Szervező program Pénzügy figyelő, számlázó program Legújabb alkalmazás.NET Framework 2.0 WSE.NET Framework 4.0 WCF Régebbi, jól bevált alkalmazás.
Gábor Dénes Főiskola (IAI)Programozási technológia (Java) - III. / 1 13.Állományok, bejegyzések 14.Folyamok 15.Közvetlen hozzáférésű állomány.
Hasznos ismeretek Hogyan bővítsük ismereteinket AVRDUDEflags -E noreset.
Adatbázis adminisztrátori ismeretek
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Könyvtár, csomag és alprogramokVHDL Könyvtár, csomag és alprogram n Library és use n Package n Alprogramok –Procedure –Function –Resolution function Egy.
Készítette: Csíki Gyula
II. labor Lépések kezelése. Új metódus a Square osztályba public static int letterToFileIndex(char letter) throws NumberFormatException { int i = 0; for.
 Kvantált kép fényesség értékei: G [ 0, Gmax ]  G fényességű pontok száma: P(G)
1 Verseny 2000 gyakorlat ODBC Adatforrás létrehozása.
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
Adatbázis rendszerek I Relációs adatmodell strukturális része Általános Informatikai Tsz. Dr. Kovács László.
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Adatbázis rendszerek II
5. gyakorlat Fleiner Rita.
Adatbázis rendszerek I
Számítógépes adatbázis-kezelés
Access adatbáziskezelés
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
Miskolci Egyetem Alkalmazott Informatikai Tanszék 2007
Adatbázis használat a webszervernél
Logisztikai projekt - gyakorlat Adatbázis-elmélet
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
Függvénysablonok használata
Előadás másolata:

SQL programozási felületek

Henri Rousseau, ‘Az álom’ ADO ESQL OCI PHP JDBC ADO ODBC SQL JSQL 1910 lehetőségek kavalkádja XSQL PL/SQL DAO OLEDB TSQL Henri Rousseau, ‘Az álom’

EXEC SQL UPDATE tabla SET .. if (res < 0) {… E-SQL DEFINE CLASS sracs AS GRID sracs.RECORDSOURCE=”SELECT … OPI CLI re = SQLEXECUTE(cs, ”SELECT * …”) O-CLI re = CON.executeQuery(”SELECT * …”) DBMS ODBC OPI : Object Parameter Interface (sajat elnevezés) SQL JDBC native

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 scanf(”%d”,&lv); … INSERT INTO ARU VALUES(C.NEXTVAL,:lv); if (sqlca.errcode==0) { printf(“Sikeres beszuras\n”); } DBMS

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

Gazdanyelvi változók deklarációja és beépítése 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); }

- több rekord jön át: Kurzor mechanizmus DBMS Alkalmazás kurzor 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;

Közvetett hibakezelés WHENEVER hiba valasz; SQLERROR, NOT FOUND STOP, CONTINUE, GOTO c, DO fv indikátor változók : :r1:r2 WHENEVER NOT FOUND GOTO ki; while () { EXEC SQL FETCH k1 INTO :r1:e1, :a1; if (e1>0) printf (”rsz=%s ar=%d”,r1,a1); } ki:

Beágyazott SQL mintapélda EXEC SQL DECLARE autokurz CURSOR FOR SELECT tip, ar FROM auto WHERE tip LIKE 'FIAT%' OR tip LIKE 'LADA%' FOR UPDATE OF ar; EXEC SQL OPEN autokurz; EXEC SQL WHENVER NOT FOUND GOTO vege; while (1) { EXEC SQL FETCH autokurz INTO :atip,:aar:aai; if (aai < 0) continue; if (tip[0] == 'F') { EXEC SQL UPDATE auto SET ar = ar*1.15 WHERE CURRENT OF autokurz; } else { EXEC SQL UPDATE auto SET ar = ar*1.12 } vege: EXEC SQL CLOSE autokurz;

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) Oracle SQLServer Informix DB2 Sybase VFP Access Excel Txt ODBC

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

ODBC struktúra ODBC Driver 1 Driver manager Driver 1 Driver 1 ODBC ODBC N Egylépcsős Kétlépcsős

ODBC API (C) Kapcsolattartás: handlerek session h. connection h. connection h. command h. command h. command h. e = sqlAllocEnv() c = sqlAllocConnect(e) p = sqlAllocStmt(c) sqlFreeEnv() sqlFreeConnect() sqlFreeStmt() sqlConnect(c,elérés) sqlPrepare() sqlExecDirect(p,parancs) sqlExec() sqlFetch(p) sqlBindCol() sqlGetData() sqlError() sqlSetStmtOption() sqlTables()

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 kiírása } 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ó

ODBC források menedzselése

VFP-ODBC egyszerűsített nyilvántartás - egy leíró struktúra (egész típusú azonosító) egyszerűsített adatkezelés - VFP lokális kurzorba tölti át az eredményt hdbe=SQLConnect(DSN, felhasználó, jelszó) SQLExec(hdbc,”SQL”,cursornev) SQLColumns(hdbc,”tabla”) SQLCommit (hdbc) SQLTables(hdbc) SQLSETProp(hdbc,parameter,ertek) SQLGetProp(hdbe,parmeter) SQLRollback(hdbc) SQLDisConnect(hdbc)

pw = allt(thisform.jszo.value) con = sqlconnect("LocalServer","ujabb",pw) if con < 0 …… endif p = sqlexec(con,"SELECT max(kod) db FROM dolg","cu1") if p > 0 select cu1 kod = cu1.db + 1 endif p = sqlexec(con,"INSERT INTO DOLG VALUES(" + allt(str(kod))+ ",'" + allt(thisform.nev.value)+"') ")

MS elérési felületek ODBC DAO/JET DAO RDO ADO DAO JET RDO OLEDB ODBC OLEDB-D SQLServer

ADO felület Universal Data Access RDBMS OODBMS ISAM MAPI LDAP XML … Objektum orientált szemléletű ADO.Net környezet

ADO.Net objektum modell Framework Data Provider: (adatkapcsolat) - Connection - Error, Property - Command - Parameter, Property - DataReader - Field, Property - DataAdapter DataSet: (lokális kezelés) - DataTable - DataRelationCollection DataReader: ReadOnly kurzor

Objektumok kapcsolata DataReader Connection ExecuteNonQuery() ExecuteReader() CreateCommand() Command Open() Prepare() BeginTransaction() CreateParameter() ConnectionString CommandText CommandType Transaction CommandTimeout DataParameter

RecordsAffected DataReader NextResult() FieldCount GetInt() Close() Read() DataRecord GetString() GetName() getFieldType() Transaction Commit() IsolationLevel DataParameter SourceColumn Rollback() DbType Value

{ SqlConnection nW = new SqlConnection ( ”Data Source=LocalHost”,….); SqlCommand sC = nW.CreateCommand(); sC.CommandText = ”SELECT ar FROM b …”; nW.Open(); SqlDataReader mR = sC.ExecuteReader(); while (mR.Read()) { …. mR.GetInt(1); … mR.GetString(..)… } mR.Close(); nW.Close();

{ OleDbConnection nW = new OleDbConnection (…); nW.Open(); OleDbCommand sC = new OleDbComamnd(nul, nW); … sC.CommandText = ”INSERT INTO … VALUES(@i,…)”; sC.Parameters.Add(”@i”,11); sC.Prepare(); sC.ExecuteNonQuery(); sC.Parameters[0].Value = 13; nW.Close(); }

DataSet (memória adatcache) Tables Relations View Rows Primary Key Constraints Columns FilterName ReadOnly DataType Attributes AutoIncrement Size BaseType DefaultValue IsArray

ADO-VFP Con = CREATEOBJECT(”ADODB:CONNECTION”) && registry : HKEY_CLASSES_ROOT

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

JDBC – API (Java) 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) { }

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()); } }