Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Objektrelationales Mapping mit JPA
XSQL - Beispiel. © Prof. T. Kudraß, HTWK Leipzig Nested Cursor erzeugen in SQL-Anfragen die XML-typische Baumstruktur (anstelle von Tabellen) Beispiel:
Datenbank-Zugriffsschnittstellen. © Prof. T. Kudraß, HTWK Leipzig Überblick Datenbankzugriff mit PHP Datenbankzugriff mit JDBC Datenbankzugriff mit PSP.
2. DB-API: Programmierschnittstellen zu Datenbanken
MySQL.
Prof. Dr. Andreas Schmietendorf
Allgemeine Technologien II
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
SendEplanung Datenbank
FH-Hof SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
MySQL Der Einstieg.
Programmierung von Datenbank Anwendungen
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Datenbank-Zugriffsschnittstellen am Beispiel von Oracle und PL/SQL.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
JDBC Konzepte Realisierung von Zugriffen
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
JDBC EDV JDBC.
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Einführung MySQL mit PHP
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Client / Server Architektur
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
JDBC: JAVA Database Connectivity
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
ODBC (Open Database Connectivity)
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Wir bauen uns eine Webapplikation!
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Adaption von K-Means Algorithmen an Datenbanken
1 Softwareentwicklung mit.NET Teil 5 Datenzugriff mit ADO.NET Dr. Ralph Zeller.
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 SQL (Teil 5)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
JDBC (Java DataBase Connectivity)
Transaktion Huang Zhenhao FU Shuai.
Objectives Verstehen was unterDelegate verstanden wird
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Datenanbindung in Webapplikationen
Datenbankanbindung mit
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Structured Query Language
OQL-Anbindung an Java (1) Java als Beispiel für die Einbettung von OQL in eine Programmiersprache Die OQL-Einbettung in Java ist teilweise mit dynamischem.
Datenbanken im Web 1.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Abhängigkeiten zwischen Transaktionen (Fehlerklassen) u Lost-Update-Problem u Dirty Read.
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
JDBC1 Motivation(I) JDBC keine Abkürzung, sondern geschützter Name (inoffiziell: für Java Database Connectivity) unterschiedliche DBS haben unterschiedliche.
JDBC – Datenzugriff aus Java
1 Prof. Dr. Andreas SchmietendorfWS06/07 Übung 3 Test der Möglichkeiten des JDBC-Interfaces.
PHPmyadmin Maya Kindler 6c.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
DB2 UDB im z/VSE Heinz Peter Maassen – Lattwein GmbH COURSE Tagung Bad Hersfeld 2008.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Übung Datenbanksysteme I Embedded SQL, Stored Procedures, JDBC
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
JDBC Java DataBase Connectivity
Vorlesung #8 SQL (Teil 5).
 Präsentation transkript:

Open Database Connectivity (ODBC)

© Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface für die Ausführung von SQL-Befehlen darstellt Vergleiche SQL/CLI – Bestandteil des SQL:1999 Standard – Angleichung mit ODBC geplant Software-Architektur vergleichbar wie JDBC – Driver Manager und Driver für jedes angeschlossene DBMS – ODBC nicht objektorientiert, DBMS-Interface auf niedrigerem Level – Gefahr von Memory Leaks

© Prof. T. Kudraß, HTWK Leipzig Programmstruktur SQLAllocEnv (&henv); SQLAllocConnect (henv,&hdbc); SQLConnect(hdbc,database_name,userId,password) SQLAllocStmt (hdbc,&hstmt); SQLExecDirect (hstmt,... SQL statement... );.. verarbeite Ergebnisse. SQLFreeStmt (hstmt,fOption); SQLDisconnect (hdbc); SQLFreeConnect (hdbc); SQLFreeEnv (henv);

© Prof. T. Kudraß, HTWK Leipzig ODBC Funktionen SQLAllocEnv() – allokiert und initialisiert Speicher für eine Environment Area, genutzt vom Driver Manager für Run-Time Informationen – liefert einen Handle zurück (in C: Pointer) SQLAllocConnect() – allokiert Speicher für die Connection und liefert einen Connection Handle zurück, hdbc SQLConnect() – lädt DB-Driver und verbindet sich mit dem DB-Server – auch mehrere Verbindungen zu DB-Managern möglich SQLAllocStmt() – allokiert Speicher innerhalb des Drivers für ein SQL Statement und liefert einen Handle, hstmt, für dieses Statement zurück

© Prof. T. Kudraß, HTWK Leipzig ODBC Funktionen (Forts.) SQLExecDirect() – bekommt einen Statement Handle und eine String-Variable für das eigentliche Statement – veranlaßt Prepare und Execute für das Statement im Server – Retrieval (SELECT), DML (UPDATE) und DDL-Befehle (CREATE) möglich – produziert ein Resultset, auf das durch Cursor zugegriffen werden kann SQLDisconnect() – löst Verbindung zum Server SQLFreeStmt(),SQLFreeConnect(),SQLFreeEnv() – Freigabe der Handle und des allokierten Speichers

© Prof. T. Kudraß, HTWK Leipzig Prepared Statements Prepare Statement SQLPrepare (hstmt,... SQL statement...); kann Platzhalter ? beinhalten Execute Statement SQLExecute (hstmt); Bereitstellen von Parametern an dynamisches SQL- Statement SQLBindParameters (hstmt,1,SQL_PARAMETER_INPUT, SQL_C_SSHORT,SQL_SMALLINT,&int1);

© Prof. T. Kudraß, HTWK Leipzig Cursor Daten werden über Cursor zurückgegeben zusätzliche ODBC Funktionen, um Daten in Applikation zu bringen SQLBindCol (hstmt,1,SQL_C_SSHORT,&int2); bindet erste Spalte des ResultSet an Variable int2 SQLFetch (hstmt); Cursor wird weitergesetzt, Werte der aktuellen Zeile werden in Host-Variablen gespeichert wenn Variable nicht gebunden: SQLGetData (hstmt,2,SQL_C_SSHORT,&int3);

© Prof. T. Kudraß, HTWK Leipzig Cursor Typen STATIC – bei Ausführung von SELECT Berechnung des ResultSet, separat von Basistabelle abgespeichert – Aufruf von SQLFetch holt eine Zeile vom ResultSet KEYSET_DRIVEN – bei Ausführung von SELECT wird Menge von Pointern auf Zeile der Basistabelle angelegt – Aufruf von SQLFetch folgt Pointer und holt Zeilen von Basistabelle – Änderungen in Basistabelle beim nächsten Fetch sichtbar – neue Datensätze nicht sichtbar (Insert-Anomalie) DYNAMIC – Daten im ResultSet komplett dynamisch, Änderungen im ResultSet möglich und bei nachfolgendem Fetch sichtbar

© Prof. T. Kudraß, HTWK Leipzig Cursor-Verarbeitung Setzen des Cursor-Typs: SQLSetStmtOption (hstmt,SQL_CURSOR_TYPE,Option) positionierte Updates durch nicht-statische Cursor SQLExecDirect (hstmt1,SELECT * FROM Employee \ FOR UPDATE OF Salary); nach einigen Fetch-Statements, Erhöhung des Gehalts um 1000 im aktuellen Datensatz SQLExecDirect (hstmt2,UPDATE Employee SET Salary = Salary \ WHERE CURRENT OF employee_cursor); Verbindung des employee_cursor mit dem Statement Handle SQLSetCursor (hstmt1,employee_cursor);

© Prof. T. Kudraß, HTWK Leipzig Statusabfrage RETCODE retcode1; : retcode1 = SQLConnect(...); if (retcode != SQL_SUCCESS) { : do something }

© Prof. T. Kudraß, HTWK Leipzig Ausführung von Transaktionen Autocommit-Modus – ausschalten, wenn zwei oder mehr Statements zu Transaktion gruppiert werden sollen SQLSetConnection (hdbc,SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF); Isolation Level ändern SQLSetConnectionOption (hdbc, SQL_TXN_ISOLATION, SQL_TXN_REPEATABLE_READ); Transaktionen beenden oder zurückrollen SQLTransact (henv,hdbc,Action) Action = SQL_COMMIT oder SQL_ABORT