Embedded SQL - Die Macht von SQL in RPG

Warum sollte man SQL in RPG verwenden, wenn man doch über Record-Level-Access auf die Daten zugreifen kann? Dafür gibt es viele Gründe!

SQL ist eine standardisierte Sprache zur Definition und Manipulation von Daten in relationalen Datenbanken. Alle Datenbank-Hersteller haben sich verpflichtet diesen Standard einzuhalten. Der gleiche SQL-Code kann mit nur minimalen Anpassungen in jeder Programmiersprache, in der SQL verwendet werden kann, eingesetzt werden. Der annähernd gleiche SQL Code kann beim Zugriff auf unterschiedliche Datenbanken verwendet werden.

Man sollte dabei allerdings nicht den Fehler machen native I/O 1:1 in embedded SQL zu übersetzen. Stattdessen sollte man versuchen so viel Programm-Logik wie möglich in die Datenbank zu verlagern (DataCentric). Man muss umdenken, d.h. zuerst werden die SQL-Statements, die die gewünschten Daten liefern erstellt und getestet und dann im Programm-Code hinterlegt.

SQL liefert Funktionen und Methoden, die in (nativem) RPG nicht integriert sind und aufwendig programmiert werden müssten. Warum also nicht einfach die SQL-Methoden nutzen? Egal ob es sich um einzelne skalare SQL-Funktionen oder komplexe SELECT-Statements mit x verknüpften Tabellen, Gruppierungen und vielleicht auch noch Zwischen-Summen und Gesamt-Summen handelt, durch den Einsatz von embedded SQL kann der SourceCode minimiert und einfach getestet werden. Sofern die Spalten einzeln ausgewählt wurden, also nicht mit SELECT* gearbeitet wird, ist eine Kompilierung bei Datei-Änderung nur dann notwendig, wenn die explizit angegebenen Spalten betroffen sind.

In bestimmten Situationen ist das (endgültig) auszuführende SQL-Statement zur Compile-Zeit noch nicht bekannt, da zunächst Benutzer-Eingaben erforderlich sind. In solchen Fällen können SQL-Statements auch erst zur Laufzeit aufbereitet und ausgeführt werden (dynamisches SQL)

Stored Procedures (SQL-Programme) können mit embedded SQL nicht nur aufgerufen werden, es ist auch möglich die, über die Stored Procedures ausgegebenen Result-Sets zu verarbeiten. 

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.) und dem JSON-Support (ab Release 7.3) können auf diese Art und Weise auch XML-Dokumente oder JSON-Daten generiert und bearbeitet werden. Es ist sogar möglich direkt auf Web-Services zuzugreifen und die Response zu verarbeiten.

Agenda


  • Überblick
  •  Voraussetzungen
    - Syntax-Einbindung SQL-Statements in RPG
    - (Pre-)Kompilierung
  •  Verwendung von Variablen
    - Host Variablen und Host-Datenstrukturen
    - Indicator Variable - Behandlung von NULL-Werten
  • Verwendung von SQL skalaren Funktionen und Prädikaten ohne Zugriff auf die Datenbank
     
  • Statisches und Dynamisches SQL ohne Cursor
    - Einzel-Satz-Zugriff
    - Massen-Inserts/Updates/Deletes
      
  • 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 über SQLCODE oder SQLSTATE
  •  Verarbeitung von Stored Procedures mit Result Sets
  • Verarbeitung vonLarge 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 für Fortgeschrittene absolvieren.

Anwendungsbeispiele aus dem Seminar


Der enorme Sprachumfang von SQL mit seinen Built-in-Functions bietet unzählige Möglichkeiten, RPG-Programme effektiver zu machen und ihre Performance entscheidend zu verbessern.     

Machen Sie sich selbst ein Bild: Die unten angehängten Original-Seminarfolien aus dem Embedded-SQL-Seminar zeigen Beispiele für spannende SQL-Lösungen, die Ihnen Arbeit und Programmierzeit sparen können.
 


Berechnung Zeitdifferenz in Stunden/ Minuten/ Sekunden

Ermitteln nächste Bestellnummer

 

Übernahme erledigte Aufträge  in History File

Anzeige Umsatz/Kunde und Jahr

 


Reorganisationsprogramm: Sichern des Jahres-Umsatzes



Kopieren Teil-Datei ins IFS

Dauer und Preis


3 Tage à 8 Stunden.
Die Gebühren betragen 1.520,00 EUR + MwSt.

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


Toolmaker stellt die für die Schulung notwendige einheitliche Lern- und Arbeitsumgebung für die Teilnehmer auf Notebooks bereit.

Das Arbeiten mit unterschiedlichen Arbeitsumgebungen, Software-Ständen oder Berechtigungen kostet Zeit. Daher kann nur in Ausnahmefällen (bitte um Absprache) das eigene Notebook verwendet werden. Darauf sind die folgenden Software-Installationen notwendig:

  1. Für alle SQL Schulungen - IBM i Access Client Solution (ACS), mit der neuesten Version. Der Teilnehmer sollte volle Berechtigung für alle Datenbank-Optionen haben. Vorzugsweise sollte die englische Version verwendet werden.
  2. Für alle RPG Schulungen sollte RDi (neueste Version) installiert sein, vorzugsweise ebenfalls auf Englisch. Für die Kodierung der Beispiele kann notfalls auch eine 5250 Emulation (z.B. aus IBM i Access, ACS oder RDi oder MOCHA...) verwendet werden. Eine 5250 Emulation für einige Tests, Aufgaben (z.B Anzeige von Variablen in RPG mit DSPLY) wünschenswert.            

Die Ausgestaltung der Arbeitsumgebung bei Inhouse-Schulungen wird individuell abgesprochen.

Anmeldung

Page

Hier finden Sie unsere Schulungs-AGB

Ihre Buchung wird von Toolmaker schriftlich bestätigt. Sie ist erst mit dieser schriftlichen Auftragsbestätigung verbindlich. Wenn Sie direkt mit uns sprechen möchten: 08191-968-0

Termine

auf Anfrage: 08191-968-0

Referentin:
Birgitta Hauser

Schulungskalender
Alle Schulungen finden Sie hier im Überblick.

Individuelle Schulungen
Schulungen können kundenindividuell beliebig neu zusammengestellt werden. Bei kundenindividuellen Schulungen ist eine Teilnehmerzahl zwischen 4 und 8 Personen optimal.

Übungen sind jeweils in die Schulungen integriert. Bei den Zeitangaben wird von einem Schulungstag mit 8 Stunden ausgegangen. Auch die Zeiten können kundenindividuell angepasst werden.

Hinweise zur möglichen inhaltlichen Ausgestaltung individueller Schulungen finden Sie im Schulungsprogramm.

Hotelreservierung
Eine Hotelreservierung können Sie bequem hier vornehmen.