Embedded SQL in PostgreSQL

Ähnliche Dokumente
Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Inhalt. Einbettungstechniken für SQL. 1. Datenbank-Programmierung. Statische Einbettung

Softwareentwicklung mit JAVA EE

Datenbanken. Autor Rainer Colgen (0171)

3 Embedded SQL. 3.1 Theorie Was ist Embedded SQL?

AG Datenbanken und Informationssysteme Wintersemester 2006 / Übungsblatt

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #6. SQL (Teil 4)

Embedded SQL mit C und PostgreSQL

5.8 Bibliotheken für PostgreSQL

2. Datenbank-Programmierung

Universität Stuttgart Abteilung Anwendersoftware Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

C-Kurs 2010 Pointer. 16. September v2.7.3

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

PostgreSQL unter Debian Linux

Prozedurale Datenbank- Anwendungsprogrammierung

Einführung in die C-Programmierung

Einbettung in SQL. Zwei Prinzipien: (1) Statische Einbettung

Installation MySQL Replikationsserver

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013

Willkommen. Datenbanken und Anbindung

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Datenbanksysteme I Datenbankprogrammierung Felix Naumann

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

QMF Tabelle Q.OBJECT_DATA in DB2

Datenbank-Anwendungsprogrammierung

Übersicht der wichtigsten MySQL-Befehle

10. Programmieren in SQL

Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden

PostgreSQL Ein Überblick

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach)

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL

Entwicklung von Web-Anwendungen mit JAVA EE

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Kapitel 8 Host Sprachen mit Embedded und Dynamic SQL

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Teil I Debuggen mit gdb

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Kurzeinführung ODBC. 1 Codebeispiele. 1.1 Embedded SQL

Zusammengesetzte Datentypen

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Grundlagen der Informatik

Datenbanksysteme 2011

Vergessene (?) SQL- und PL/SQL- Funktionen

Wie kommen die Befehle zum DBMS

8. SQL zur Anwendungsprogrammierung (embedded SQL, ESQL)

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Die Anweisung create table

Datenbanksysteme I Übung: JDBC. Jana Bauckmann

Chancen und Wachstumsfelder für PostgreSQL

Datenbanksysteme. Dominic Pacher. Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck. dbis-informatik.uibk.ac.

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Kapitel 4 Dynamisches SQL

Die Programmiersprache C Eine Einführung

Entwicklungsumgebung für die Laborübung

SQL (Structured Query Language) Schemata Datentypen

Programmieren für Fortgeschrittene Einführung in die Programmiersprache ABAP

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

11 Anwendungsprogrammierung

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

CADSTAR MRP-Link. MRP-Link ist erstellt von:

Datenbankprogrammierung, Jan Tobias Mühlberg, 3. Juli Belegarbeit. im Fach Datenbankprogrammierung, Sommersemester 2002

Vorbereitungen zum 3. Praktikum (PL/SQL):

Embedded SQL mit C und Oracle

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Art der Info: Technische Background Info Teil 1 (April 2002)

Datenmanagement I SoSe 2006 Aufgabenblatt 4

Kapitel 4 Dynamisches SQL

Grundlagen der Informatik 2

10 Anwendungsprogrammierung

Klausur Datenbanken II

ids-system GmbH Tipp #5 STRING_UNITS ab DB FP 4

Wie kommen die Befehle zum DBMS

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Ein- und Ausgabe mit Dateien

vs. Fehler zur Übersetzungszeit

Übungen zu Systemprogrammierung 1

Übung zu Grundlagen der Betriebssysteme. 3. Übung

pro et con Innovative

Ein- und Ausgabe mit Dateien

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

2. Programmierung in C

Erste Schritte der Programmierung in C

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli MySQL-Job-Automation

SelectLine Auftrag. ab Version 13. Beschreibung zur Paketverfolgung

Oracle 9i Einführung Performance Tuning

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

PostgreSQL auf Debian System

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013

Transkript:

7. Dezember 2010

Michael Meskes Seit 1993 Freie Software Seit 1994 Linux Seit 1995 Debian GNU/Linux Seit 1998 PostgreSQL

Michael Meskes 1992-1996 Promotion 1996-1998 Projektleiter 1998-2000 Niederlassungsleiter seit 2000 Geschäftsführer

Embedded SQL Embedded SQL ist eine Spracherweiterung von SQL, mit der es möglich ist, SQL-Anweisungen innerhalb einer strukturierten oder objektorientierten Programmiersprache [... ] auszuführen. Quelle: Wikipedia

Konzepte von Embedded SQL SQL-Standard Normales C-Programm mit eingebettetem SQL Präkompiler wandelt SQL-Code in Library-Aufrufe um Prüft Syntax des SQL-Code beim Kompilieren Erleichtert Datenaustausch zwischen C und SQL

Präkompiler - ECPG Kontrolle der SQL-Syntax Identisch mit SQL-Syntax des Backends Umwandlung von SQL nach C

Libraries libecpg - SQL Umsetzung libpgtypes - SQL Datentypen libecpg compat - Kompatibilität

Programme übersetzen ecpg prog1.pgc # (erzeugt prog1.c) cc -c -I/usr/include/postgresql prog1.c # (erzeugt prog1.o) cc -o prog prog1.o -lecpg # (erzeugt prog)

Beispiel der C-Syntax #include <stdlib.h> #include <stdio.h> int main(int argc, char *argv[]) { puts("hallo"); EXEC SQL UPDATE tabelle SET a = a + 1; }

Übersetzt /* Processed by ecpg (4.6.0) */ /* These include files are added by the preprocessor */ #include <ecpglib.h> #include <ecpgerrno.h> #include <sqlca.h> /* End of automatic include section */ #line 1 "a.pgc" #include <stdlib.h> #include <stdio.h> int main(int argc, char *argv[]) { puts("hallo"); { ECPGdo( LINE, 0, 1, NULL, 0, ECPGst_normal, "update tabelle set a = a + 1", ECPGt_EOIT, ECPGt_EORT);} #line 9 "a.pgc" }

Verbinden EXEC SQL CONNECT TO dbname AS connname USER user; Zum Beispiel: EXEC SQL CONNECT TO tcp:postgresql://sql.beispiel.de:5432/mydb AS myconn USER peter IDENTIFIED BY geheim ;

Verbindung beenden EXEC SQL DISCONNECT; -- aktuelle Verbindung EXEC SQL DISCONNECT connname;

Autocommit Precompiler-Option In der Standardkonfiguration wird kein automatisches COMMIT ausgeführt. Mit Option wie im Backend.

Befehle mit Hostvariablen (1) EXEC SQL BEGIN DECLARE SECTION; int v1; char v2[100]; EXEC SQL END DECLARE SECTION; v1 = 42; strcpy(v2, "text"); EXEC SQL INSERT INTO test VALUES (:v1, :v2); EXEC SQL COMMIT;

Befehle mit Hostvariablen (2) EXEC SQL BEGIN DECLARE SECTION; int v1, ind1; VARCHAR v2; EXEC SQL END DECLARE SECTION; EXEC SQL DECLARE foo CURSOR FOR SELECT a, b FROM test; do { EXEC SQL FETCH NEXT FROM foo INTO :v1:ind1, :v2; } while ();

Übersetzt #line 2 "a.pgc" int v1, ind1 ; #line 3 "a.pgc" struct varchar_v2_1 { int len; char arr[ 40 ]; } v2 ; /* exec sql end declare section */ #line 4 "a.pgc" /* declare foo cursor for select a, b from test */ #line 6 "a.pgc" { ECPGdo( LINE, 0, 1, NULL, 0, ECPGst_normal, "declare foo cursor for select a, b from test", } #line 7 "a.pgc" do { { ECPGdo( LINE, 0, 1, NULL, 0, ECPGst_normal, "fetch next from foo", ECPGt_EOIT, ECPGt_int,&(v1),(long)1,(long)1,sizeof(int), ECPGt_int,&(ind1),(long)1,(long)1,sizeof(int), ECPGt_varchar,&(v2),(long)40,(long)1,sizeof(struct varchar_v2_1), ECPGt_NO_INDICATOR, NULL, 0L, 0L, 0L, ECPGt_EORT);} #line 11 "a.pgc" } while ();

Fehlerbehandlung: Callbacks EXEC SQL WHENEVER SQLERROR STOP; EXEC SQL WHENEVER SQLWARNING SQLPRINT; EXEC SQL WHENEVER SQLERROR CALL func(); EXEC SQL WHENEVER NOT FOUND DO BREAK;

Migrationen EXEC SQL CONNECT SQL-Migration Variablen Anpassungen am Präkompiler möglich Kompatibilitätsschichten

Geschichte Linus Tolke Import nach Postgres Anfang 1998 Kompatibilität 2003

Aktuelle Versionen Präkompiler 4.6.0 Library 6.2 Typlibrary 3.1 Kompatibilitätslibrary 3.2

Weiterentwicklung Kontinuierlich Performance, z.b. Auto-Prepare Standardfeatures, z.b. SQLDA Kompatibilität!

Wir brauchen SIE! Anregungen? Feedback? Wünsche?