Embedded SQL
Termin
18.06. - 20.06.2012 Kaufering
Seminarprogramm
Gesamtes Seminarprogramm als PDF herunterladen: hier
Warum sollte man SQL in RPG verwenden, man kann doch über Record-Level-Access auf die Daten zugreifen?
Dafür gibt es viele Gründe:
SQL ist eine standardisierte Sprache zur Definition und Manipulation von Daten in relationalen Datenbanken. Alle Datenbankenhersteller haben sich verpflichtet diesen Standard einzuhalten. In den meisten Programmiersprachen kann nur über SQL auf die Daten zugegriffen werden. Der gleiche SQL-Code kann mit nur minimalen Anpassungen in jede Programmiersprache, in der SQL verwendet
werden kann, übernommen werden. Die Verwendung von SQL ermöglicht Programmcode in Datenbankenlogik zu verlegen.
In RPG gibt es z.Z. ca. 80 Built-In-Functions während SQL ungefähr das Doppelte aufzuweisen hat. Mit embedded SQL können diese Funktionen direkt in RPG genutzt werden. Mit einem einzigen embedded SQL Statement können Hunderte oder Tausende von Datensätzen eingefügt, geändert oder gelöscht werden. Verknüpfung von Dateien, Gruppierungen und Summierungen können direkt in einem SQL-Statement hinterlegt werden, wodurch der Source-Code beträchtlich reduziert werden kann. Datei-Änderungen erfordern nur dann eine Recompilierung der Module bzw. (Service-)Programme, wenn SELECT * verwendet wurde. Bei Bedarf können SQL-Statements zur Laufzeit on the fly gebildet und ausgeführt werden.
Mit embedded SQL können auch IFS-Dateien erstellt und mit Hilfe von SQL skalaren Funktionen verarbeitet werden. Mit dem XML-Support ab Release 7.1. können auf diese Art und Weise auch XML-Dokumente generiert und bearbeitet werden. Eine weitere Neuerung in Release 7.1 erlaubt direkt mit RPG Result Sets, die aus Stored Procedures zurückgegeben werden, zu verarbeiten.
Allgemeine Hinweise
Alle Kurse können auch kundenindividuell beliebig neu zusammengestellt werden.
Übungen sind jeweils in die Kurse integriert. Bei den Zeitangaben wurde von einem Kurstag mit 8 Stunden ausgegangen. Auch diese Zeiten können kundenindividuell angepasst werden (z. B. 6 Stunden oder eion halber Tag).
Bei kundenindividuellen Schulungen hat sich eine Anzahl von maximal 8 Teilnehmern als optimal erwiesen. Bei höheren Teilnehmerzahlen kann sich der Schulungsleiter nicht mehr ausreichend um die einzelnen Teilnehmer kümmern.
Agenda
- Überblick
- - Terminologie
- Voraussetzungen
- Kompilierung
- Einbindung von SQL in RPG
- Verwendung von Variablen
- Host Variable
- Indicator Variable
- Verwendung von SQL skalaren Funktionen ohne Zugriff auf die Datenbank
- Statisches und Dynamisches SQL ohne Cursor
- Verwendung von SQL Cursor
- Serielle und Sequentielle Cursor
- Statisches SQL mit Cursor
-Single and Multiple Row Fetches
-Update von Daten über Cursor
- Dynamisches SQL mit Cursor
- Fixe Auswahl-Liste
- Variable Auswahl-Liste
- Error-Handling
- Verarbeitung von Stored Procedures mit Result Sets
- Large Objects
- LOB/XML Spalten und Dokumente
- Erstellen und Verarbeiten von IFS-Dokumenten mittels Embedded SQL
- Performance-Betrachtungen
Die einzelnen Punkte können vom Kunden auch individuell ausgewählt und zusammengestellt werden.
Vorkenntnisse
RPGIV Programmier-Erfahrung und SQL Grundkenntnisse.
Es ist zu empfehlen, dass die Teilnehmer zunächst den Kurs SQL-Abfragen (vergl. 5 SQL Abfragen und Manipulation Language (für Profis)) absolvieren.
Dauer
2-3 Tage à 8 Stunden
In dem 3-tägigen Kurs sind die Verarbeitung von Stored Procedures mit Result Sets und die Verarbeitung von Large Objects und XML-Dokumenten integriert.
Arbeitsumgebung der Schulungsteilnehmer
Die Schulungsteilnehmer sollten zumindest je einen Arbeitsplatz mit Zugriff auf ein System i mit einer 5250 Emulation haben.
Vorzugsweise sollten die Teilnehmer außerdem eine Client Access Umgebung mit System i Navigator und innerhalb des System i Navigators Berechtigung für die Datenbank haben. Sofern möglich sollte die englische Version des System i Navigators verwendet werden, da die deutsche Übersetzung z.T. nicht korrekt ist. Weiterhin werden z.T. SQL-Schlüsselworte übersetzt, ohne dass das eigentliche Schlüssel-Wort (z.B. in Klammern) angegeben wird. Die Verwendung des System i Navigators ist für die Erstellung und Ausführung der Beispiel-Programme nicht unbedingt erforderlich.
Zur Codierung der Beispiel-Programme sollte vorzugsweise eine WDSc, RSE, RDi, RDp-Umgegbung verwendet werden. Die Beispiel-Programme können jedoch auch mit STRPDM erstellt und in einer 5250-Emulation ausgeführt werden.
Zur Ausführung der Beispiele, sollten die Benutzer volle Berechtigung auf alle Objekte in den mitgelieferten „Spiel-Bibliotheken“ erhalten.


