Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Oracle – XSQL in der Anwendung SIG Development (Tools) Oracle & XML Kassel, 04.06.2002 Thomas Matzke, HTWK Leipzig.

Ähnliche Präsentationen


Präsentation zum Thema: "Oracle – XSQL in der Anwendung SIG Development (Tools) Oracle & XML Kassel, 04.06.2002 Thomas Matzke, HTWK Leipzig."—  Präsentation transkript:

1 Oracle – XSQL in der Anwendung SIG Development (Tools) Oracle & XML Kassel, 04.06.2002 Thomas Matzke, HTWK Leipzig

2 Inhalt Vorstellung von PLANet Kurze Einführung der XSQL – Technologie Was wird bei PLANet verwendet Erklärung der einzelnen Techniken

3 Vorstellung von PLANet Datenbankbasierte Planung von Lehrveranstaltungen als Intranet-Lösung –Planer –Professoren und Dozenten Erzeugung von Listen –Stundenblatt –Dozentenblatt –Matrikelübersicht Auswertung und Statistiken Flexible Darstellung: HTML, PDF, Graphik, Excel...

4 Browser Servlet- Engine+ Server Request an Server DB Oracle- Über XSQL-Skript Queries auf DB Rückgabe eines Result-Sets <?xml ver...... XML-Generierung aus Result-Set HTML PDF 10 8 9 SVG mit XSL-Stylesheet Transformation in JDBC XSQL-Technologie

5 Komponenten Datenbankserver: Oracle 8.1.6 i / 9.0.1.1.1i - Tablespace auf Oracle 8 in UTF-8 - Tablespace auf Oracle 9 in ISO-8859-1 Web-Server: Tomcat 3.3 beta http://jakarta.apache.org XSQL-Servlet aus XDK 9.0.2.0.0D

6 XSQL-Technologie Aufbau eines XSQL-Skripts select name,vorname,email,telefon from dozent XML-Header für Deutschland Elemente- Bezeichnung für XML Query Alias für DB-Verbindung (xsqlconfig.jar)

7 XSQL-Technologie

8 Was wird bei PLANet verwendet Single / Multiple Parameters Insert, Update, Delete - mit - als PL/SQL-Prozedur - als DML-Statement Session – Handling über Nested Cursor FO

9 Erklärung der einzelnen Techniken Insert mit Pflicht-Parameter table - Tabellenbezeichnung transform - Transformationsskript mit Spaltennamen - ermöglicht einfügen mehrerer Datensätze mit einem Aufruf - kann URL oder File sein Einsatzmöglichkeiten bei Formularen

10 Erklärung der einzelnen Techniken Insert mit Aufbau des Transformsheets … Spaltenbezeichnungen GROSS schreiben Elemente sind Spaltenbezeichnung

11 Erklärung der einzelnen Techniken Update mit Pflicht-Parameter table transform key-columns - Angabe der Spaltennamen mit denen Datensatz identifiziert werden soll - Angabe mehrere Spalten möglich, Trennung durch Komma

12 Erklärung der einzelnen Techniken Delete mit Pflicht-Parameter table transform key-columns - Angabe der Spaltennamen mit denen Datensatz identifiziert werden soll - Angabe mehrere Spalten möglich, Trennung durch Komma

13 Erklärung der einzelnen Techniken Single / Multiple Parameter Parameter aus Formularen bzw. Session-Managment Parameter-Anzeige mit Darstellung in XSQL:......

14 Erklärung der einzelnen Techniken Zugriff auf Single / Multiple Parameter im XSQL-Skript Zugriff auf Single-Parameter mit {@name} keine Pfadangaben, deswegen dürfen Session-Parameter und Request-Parameter nicht die gleiche Bezeichnung haben falls doch, hat Session-Parameter Vorrang Zugriff auf alle Multiple-Parameters nicht möglich nur erster Parameter wird erfasst

15 Single / Multiple Parameters - kann aus Textfeld, Listbox oder Radio-Button sein 430 Erklärung der einzelnen Techniken

16 Single / Multiple Parameters - kann durch mehrere Checkboxes,Textfelder mit gleichem Namen entstehen 430 429... Erklärung der einzelnen Techniken

17 Insert, Update, Delete mit Element besteht aus SQL-Statement Statement darf nicht mit Semikolon abgeschlossen werden geeignet, wenn nur Single-Parameters verarbeitet werden eignet sich auch zum Ausführen von Programmblöcken Statements müssen mit 'begin und 'end eingeschlossen werden Nachteil bei Blöcken ist nicht eindeutige Fehlerausgabe

18 Erklärung der einzelnen Techniken Insert, Update, Delete mit Statements müssen in PL/SQL-Prozedur stehen Aufruf erfolgt durch Prozedur-Name hinter Prozedur-Name muss Semikolon stehen gut geeignet, wenn Parameter noch überprüft werden müssen

19 Erklärung der einzelnen Techniken mit Single/Multiple-Parameters Problem: unterschiedliche Parameterdarstellung für Single/Multiple-Parameters 430 430 429 SINGLE MULTIPLE

20 Erklärung der einzelnen Techniken Unterscheidung zwischen Single und Multiple-Parameters muss im Transform-Sheet implementiert werden Einsatz von im Transformations-Stylesheet funktioniert auch bei Delete und Update mit Single/Multiple-Parameters

21 Erklärung der einzelnen Techniken

22 mit Single/Multiple-Parameters Query mit Multiple-Parametern kann bei Formularen mit mehreren gleichnamigen Checkboxes auftreten, wenn man z.B. Detailangaben über mehrere Sachen gleichzeitig haben möchte Art des Zugriffes auf Parameter mit {@variable} läßt Multiple-Parameter nicht zu Lösung: Einsatz von Dummy-Tabellen Übergebene Parameter werden vor Ausführung der Query mit in Dummy-Tabelle gespeichert Parameter können dann mit Joins über Dummy-Tabelle verarbeitet werden

23 Erklärung der einzelnen Techniken Session-Handling Speicherung der Session-Parameter in......

24 Erklärung der einzelnen Techniken Session-Handling Sessionparameter müssen nur einmal gespeichert werden Sessionparameter mit gleichem Namen wie Requestparameter haben Vorrang im XSQL-Skript Sessionparameter lassen sich überschreiben Setzen von Parametern mit Wertzuweisung durch Attribut 'value' oder durch Query

25 Erklärung der einzelnen Techniken Session-Handling Zuweisung mit 'value', wenn Request-Parameter als Session-Parameter gesetzt Zuweisung mit Query, wenn Parameter abhängig vom Request-Parameter aus der Datenbank bestimmt werden select dozid from dozent where name=(select name from nutzer where login='{@login}')

26 Erklärung der einzelnen Techniken Nested Cursor kann nur in erzeugt werden aus Query wird eine XML-typische Hierarchie erzeugt macht Gruppierung nach Werten einfacher läßt sich beliebig tief schachteln Grenze höchstens durch Rekursionstiefe von XSQL-Servlet Beispiel: Hierarchie Fachbereich, Studiengang, Semester, Fach Tiefe = 4

27 Erklärung der einzelnen Techniken Nested Cursor Gruppierung der Elementen durch "group by" in Query Cursor dürfen aber hinter "group by" nicht aufgeführt werden Cursor bekommen eine Bezeichnung für späteren Zugriff in XSL Beispiel: select f.fbereich, cursor (select fa.studiengang from faecher fa where fa.fbereich=f.fbereich group by fa.studiengang) as studgang from faecher f group by f.fbereich

28 Erklärung der einzelnen Techniken Probleme bei Nested Cursor Nullwertbehandlung (leere Unterbäume) - bei normalen Querys Angabe von Alternativ-Querys select fachid from faecher select 'vorlesung' from dual - bei Cursor Alternativ-Query nicht möglich - Möglichkeit: Weiterer Cursor auf gleicher Ebene, der eine Count-Query enthält, der die Result-Zeilen zählt

29 Erklärung der einzelnen Techniken FO - Formatting Objects Ausgabe von PDF über XSQL möglich Voraussetzung: - FO-Bibliotheken (fop.jar) http://xml.apache.org/fop - xsqlserializers.jar Zugriff auf Processing Engine durch Zusatz "serializer=FOP" in Stylesheet-Definition zusätzliche Angabe des FO-Namespace in Stylesheet

30 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:version="1.0"> Erklärung der einzelnen Techniken FO - Formatting Objects Angabe des Namespace von XSLT-Engine nötig, da sonst nicht mit Templates gearbeitet werden kann Seitenrumpf sieht dann wie folgt aus:

31 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:version="1.0"> … Erklärung der einzelnen Techniken FO - Formatting Objects FOP-Beispiel in XSQL-Beispielen von ORACLE

32 Erklärung der einzelnen Techniken Generelle Probleme Umlaute Nullwertbehandlung in Querys - Überprüfung ob Element leer, nicht möglich - siehe Überprüfung bei Multiple ParametersMultiple Parameters Speicherbegrenzung in FOP


Herunterladen ppt "Oracle – XSQL in der Anwendung SIG Development (Tools) Oracle & XML Kassel, 04.06.2002 Thomas Matzke, HTWK Leipzig."

Ähnliche Präsentationen


Google-Anzeigen