Grundlagen

Erweiterungsattribute des Content

Der Relationstyp der Inhalte bezieht eine Datenbanktabelle für benutzerdefinierte Attribute ein. In dieser Datenbanktabelle definieren und speichern Administratoren zusätzliche Inhalte des generierten abschließend Content.

Die Erweiterungsattribute ermöglichen die Definition zusätzlicher, fest bezeichneter Werte der Inhalte und dienen der gezielten Suche nach Inhalten.

Der Text des Handbuchs bezeichnet diese Speicherstellen deshalb als 'Erweiterungsattribute' oder 'Erweiterungsspalten' der Inhalte.

Die Software unterstützt für Erweiterungsattribute einen variablen Datentyp mit einer Größe von 1024 Zeichen pro Wert.

Mit 'Attributen' von Tabellen sind einfach gesagt 'Spalten' gemeint.

Bildlich gesehen liegen die Spalten einer Tabelle 'horizontal' nebeneinander. Die Erweiterungsspalten können als 'vertikal' untereinander liegend gesehen werden. Jeder Datensatz speichert für einen Inhalt einen fest bezeichneten Wert, und steht mit einer Fremdreferenz in Beziehung zu dem Datensatz Inhalte, dem er zugeordnet ist.

Die weiter unten, in dem Absatz 'Kosten', gezeigte Abbildung 02-0101 soll das Bild diese Vorstellung verdeutlichen.

Anzeige der Erweiterungsspalten steuern

Erweiterungsattribute können, entweder mit der entsprechenden Voreinstellung für Inhalte oder, direkt mit dem Content Editor ein-/ oder ausgeblendet werden. Im ersten Fall wirkt sich die Einstellung auf jeden neu erstellten Inhalt eines bestimmten Kapitels aus. Im zweiten Fall sind ausschließlich die Erweiterungsattribute des jeweiligen Inhalts betroffen.

Die Steueroption für diese Regelung ist in dem jeweiligen Editor auf dem Registerblatt 'Ansichten' erreichbar.

Ist die Anzeige der Erweiterungsattribute eingeschaltet, dann kann dort zusätzlich festgelegt werden, ob leere Erweiterungsattribute übersprungen werden sollen. Mit 'leer' sind Erweiterungsattribute gemeint, denen kein Wert zugewiesen wurde.

Veröffentlichung

Zusätzlich können einzelne Erweiterungsattribute in ihrer Definition unveröffentlicht geschaltet werden. Diese Einstellung ist global, und bewirkt, dass dieses Attribut grundsätzlich nicht mehr angezeigt wird.

Die Option ist speziell für die Suche nach unsichtbaren Erweiterungsattributen von Inhalten eingerichtet worden und sollte kein reguläres Instrument zur Steuerung der Anzeige von Erweiterungsspalten sein, denn die Attribute sind der Software weiterhin bekannt und werden von der Suchmaschine immer noch gefunden.

Das grundlegende Konzept dafür ist, dass die Werte unveröffentlichter Erweiterungsspalten zwar nicht angezeigt werden, aber von Suchabfragen erfasst werden können. Solche Suchabfragen liefern als Ergebnis die ID der Inhalte zurück, mit denen der Datensatz der jeweiligen Erweiterungsspalte in Beziehung steht.

Die Option kann allerdings dazu verwendet werden die Anzeige bestimmter Erweiterungsspalten nachträglich und bleibend auszuschalten. Beispielsweise wenn ein Erweiterungsattribut nicht mehr benötigt wird.

Sollen ausgeschaltete Attribute auch der Suchmaschine verborgen bleiben, dann muss für die Auflistung der Suchergebnisse ein Zeilenwrapper gewählt werden, der die gelieferten Suchergebnisse direkt anzeigt und nicht als ID der Inhalte interpretiert. Unter den mitgelieferten Wrappern sind Letztere an der Erweiterung 'byAttributes' zu erkennen. Seit Version 1.1.7 zeigt die Software bei der Auswahl des Wrappers eine Beschreibung des Erweiterung an.

Lebenszeit

Die Lebenszeit und Existenz von Erweiterungsattributen hängt, entweder von ihren Definitionsdatensätzen oder, von der Existenz der Inhalte, mit denen sie in Relation stehen, ab.

Für Inhalte angelegte Erweiterungsspalten werden grundsätzlich dann entfernt, wenn der damit verbundene Inhalt, oder die Definition des Attributs, gelöscht werden.

Wird die Definition des Erweiterungsattributs gelöscht, so werden damit auch alle damit verbundenen Erweiterungsspalten gelöscht. Die darin gespeicherten Daten werden auf diesem Weg vernichtet.

Erweiterungsspalten für Inhalte werden angelegt, wenn Inhalte gespeichert oder erstellt werden. Werden Inhalte erstellt, dann werden für diese Inhalte alle Erweiterungsspalten erstellt, die zu diesem Zeitpunkt definiert und in den Definitionsdatensätzen veröffentlicht sind. Dort ausgeschaltete Attribute werden nicht angelegt.

Von nachträglich definierten, oder nachträglich veröffentlichten, Erweiterungsattributen erfahren diese Inhalte erst, wenn sie einzeln mit dem Content Editor geladen und gespeichert werden. Solange kennen sie später definierte oder bei ihrer Erstellung unveröffentlichte Erweiterungsattribute nicht.

Kosten

Die Kosten für den Einsatz von Erweiterungsspalten sind hoch. Sowohl der Speicherverbrauch wie auch die Rechenzeit und damit die Latenz der Software erhöhen sich spürbar.

Betreiber einer rein redaktionellen Internetseite können diesen Aufwand vermeiden, indem sie keine Erweiterungsspalten einrichten oder einschalten.

Relation und Fremdschlüssel

Die 'Erweiterungsspalten' der Inhalte werden in einer zusätzlichen Datenbanktabelle gespeichert. Jedes Erweiterungsattribut ('zusätzliche Spalte') der Inhalte wird darin mit einem eigenen Datensatz gespeichert.

Der Relationstyp der Inhalte liegt in der 3. Normalform vor. Die Datensätze der Erweiterungsattribute stehen mit einem zusammengesetzten Fremdschlüssel in Relation zu den Primärschlüsseln der Datenbank der Inhalte in einem n:1 Verhältnis.

Der Fremdschlüssel ist zusammengesetzt aus Content-ID und Name. Die Erweiterungsattribute sind somit auf Datensätze der Inhalte bezogen.

Diagramm ErweiterungsattributeAbb.02-0101

Anwendung

Erweiterungsattribute ermögliche eine Suche nach Inhalten, die beispielsweise einen bestimmten Preis nicht überschreiten. Also wie: 'Ist der Preis kleiner als 50' ?

Bei einer Volltextsuche kann der gesamte Text eines Inhalts nach der Zahl 50 durchsucht werden und es werden alle Texte ausgeliefert, die diese Zahl enthalten. Jedoch nur wenn der Text eine Gleichung wie 'Preis=50' enthielte wäre eine Filterung der Inhalte erfolgreich. Redaktionell oder literarisch wären derartige Inhalte untragbar.

Mit benutzerdefinierbaren Erweiterungsattributen sieht das anders aus.

Die Administratoren definieren für die Content Tabelle entsprechende Erweiterungsattribute, und durchsuchen dann mit ihrer Abfrage die Erweiterungsattribute. Mittels der Fremdreferenz auf die Content Tabelle können sie anschließend auf die Daten des entsprechenden Inhalts zugreifen.

SQL Abfragesätze

Die Software erlaubt keine, von Außen her eingehenden, direkten Abfragen der zugrunde liegenden Datenbank.

Das gilt eingeschränkt für Anwendungsprogramme der Software, wie auch für den Dateneingang, der eine solche Anfrage nicht verstehen kann.

Alle Anfragen an die Datenbank geraten nach einer Analyse in ein spezielles Programm und werden anschließend über mehrere Ebenen an die Datenbank weitergegeben.

Auf diesem Weg findet die Prüfung des Benutzers, eine logische Plausibilitätsprüfung, die Erkennung des angeforderten Datenbestandes, eine Validierung der abgefragten Tabellenattribute und gegebenenfalls auch noch die Zusammenstellung des entsprechenden SQL Befehls statt.

Diese Vielschichtigkeit ist weniger das Ergebnis einer Suche nach Datensicherheit, sondern mehr das Ergebnis der Organisation von Datenbankanfragen. Sie trägt lediglich in verschiedener Hinsicht zur Betriebssicherheit bei und entspricht quasi einem allgemeinen Standard.

Um dennoch einen benutzerdefinierten Zugriff auf die Datenbank zu ermöglichen, verfügt die Software über eine Datenbank für SQL Abfragesätze.

Als 'SQL Abfragesätze' bezeichnet der Text SQL WHERE Klauseln. Die erforderlichen SQL Befehle und Namen der Datenbanktabellen sind nicht darin enthalten und werden von dem jeweiligen Programm definiert.

In der Datenbank für SQL Abfragesätze speichern Administratoren mit dem SQL Editor erstellte Abfragebedingungen, die von dem SQL Assembler zu reproduzierbaren SQL Abfragesätzen verarbeitet werden.

Zeilenwrapper und Zellenwrapper

Als 'Wrapper' bezeichnet die Software Objektklassen denen ein Datensatz, oder ein Datenobjekt, zugewiesen wird, und diese erhaltenen Daten, in HTML Code eingebettet, zurückgeben.

Der HTML Code kann fest definiert sein oder dynamisch generiert werden.

Zeilen- oder Zellenwrapper tun genau das: Sie erhalten Daten von dem Generator der Listenansicht und geben die Daten in HTML verpackt an den Generator zurück. Der Produzent des Generators implementiert den Code anschließend in die von ihm produzierte Listenansicht.

Zellenwrapper formatieren jeweils eine Zelle der angezeigten Tabelle. Zeilenwrapper formatieren einen Datensatz zu jeweils einer Zeile der Liste.

Erweiterungsspalten für Inhalte einrichten

In diesem Abschnitt beschreiben wir die Einrichtung von Erweiterungsspalten für Inhalte. Erweiterungsattribute der Inhalte sind die Grundlage für die gezielte Suche nach Inhalten.

Worum es sich bei diesen Erweiterungsspalten handelt ist in dem Abschnitt 'Erweiterungsattribute des Content' beschrieben.

Hier beschreiben wir die Definition von Erweiterungsspalten und stellen die dafür benutzen Formulare vor. Bitte lesen Sie vorab die allgemeine Beschreibung in 'Erweiterungsattribute des Content'. Lesen Sie ebenfalls in dem Abschnitt 'Einrichten der Startseite' den Absatz 'Inhalte erstellen'.

Als 'Erweiterungsspalten' versteht der nachfolgende Text eine Datenbank Tabelle in der Werte und Namen von zusätzlichen Attributen eines Inhalts gespeichert werden.

Unter 'Erweiterungsattribute' versteht der Text die mit einer Liste von Definitionen beschriebenen Felder der Tabellenspalten.

Erweiterungsattribute definieren

Bevor den Datensätzen der Inhalte Erweiterungsspalten bereitstehen müssen sie entsprechend definiert werden.

Dazu dient ein Formular, das mit einem Schalter 'Attribute definieren' angefordert wird.

Der Schalter befindet sich in der Befehlstafel ('Commander') des Contentmanagers unter 'Einstellungen', wo sich auch der Schalter 'Attribut Definition Bearbeiten' befindet (Abb.02_0106).

Erweiterungsattribute definierenAbb.02_0106

In der Abbildung des Formulars ist zu sehen, dass dort bereits 10 verschiedene Attribute definiert sind. Diese sind unter der Überschrift 'Registrierte Content Attribute' gelistet.

Um ein zusätzliches Attribute zu erstellen geben wir hier lediglich den Namen und eine Ordinalzahl für die Reihenfolge an. Die Zahl der Reihenfolge steuert während der Produktion die Reihenfolge in der die Attribute angezeigt werden.

Alle Erweiterungsattribute sind nach ihrer Definition grundsätzlich öffentlich geschaltet und werden von dem Contentparser auch verarbeitet.

Erweiterungsattribute einstellen

Mit dem oben vorgestellten Editor für die Definition von Erweiterungsattributen können wir bereits vorhandene Definitionen anzeigen.

Um bestehende Definitionen zu bearbeiten, lassen wir uns das Formular 'Attribut Definition Bearbeiten' anzeigen (Abb.02_0111). Das Formular ist über den Commander des Managers unter 'Einstellungen' erreichbar.

Erweiterungsattribute einstellenAbb.02_0111

Das Formular zeigt eine erweiterte Informationsliste zu bereits vorhandenen Definitionen und ein Auswahlfeld an.

Das Auswahlfeld ist ein aktiver Schalter. Bei Mausklick fordert er, für das entsprechende Attribut, den Editor der Definitionen an (Abb.02_0206).

Erweiterungsattribute einstellenAbb.02_0206

Der Editor zeigt in seiner Befehlsleiste (nicht abgebildet) drei Befehlsschalter für die Aktionen 'Speichern', 'Löschen' und 'Zurück'.

Die Aktionen 'Speichern' und 'Löschen' bedürfen keiner Erläuterung. Der Schalter 'Zurück' führt den Benutzer zurück in das vorher angezeigte Formular.

Der Name des Erweiterungsattributs kann nicht geändert werden. Das Feld dient lediglich der Information und wird zukünftig vermutlich anders dargestellt werden.

Auf der rechten Seite befindet sich der Editor für Übersetzungen. Der Contentparser verwendet den dort eingegebenen Text für die Beschriftung des Bezeichners der entsprechenden Erweiterungsspalte. Wird hier keine Übersetzung eingegeben zeigt der Parser im Frontend den Namen des Erweiterungsattributs an.

Werte erfassen

Die Eingabe von Werten für Erweiterungsspalten erfolgt mit den Editoren des Content entweder im Frontend oder im Backend.

Im Backend Editor befinden sich die Eingabefelder auf dem Registerblatt 'Erweiterungsspalten'. Abbildung Abb.02_ 0211 zeigt die Felder.

Werte erfassenAbb.02_0211

Im Frontend Editor befinden sich die Felder unterhalb der Eingabefelder für Titel, Text und Untertitel (Abb.02_ 0306).

Werte erfassenAbb.02_0306

Die Werte der Erweiterungsspalten werden dem Server mit dem übrigen Content zugesandt und dort gespeichert.

Abbildung Abb.02_ 0311zeigt einen Inhalt mit seinen Erweiterungsattributen.

Ansicht des Inhalts im FrontendAbb.02-0311

Als Wert der Spalte 'Preis' sehen wir dort 'keine Angabe', was den Ausfallwert für nicht eingegebene Werte darstellt. Hätten wir in den Anzeigeoptionen des Inhalts angegeben, dass Spalten ohne Wert nicht angezeigt werden sollen, dann würde diese Zeile entfallen. (Siehe Abschnitt 'Erweiterungsattribute des Content')

Programmierbare Module und Modultypen

Die Anzeige der Suchergebnisse wird von einem Modul produziert. Dieser Abschnitt gibt einige Erläuterungen zu Modulen.

Die Software unterscheidet Module grundsätzlich danach ob, sie programmierbar oder ob, sie nicht programmierbar sind.

Programmierbare Module verwenden für ihre Produktion Parameter Typen, die unterschiedlich eingestellt und in einer Datenbank abgelegt werden können.

Die Software und das Handbuch bezeichnen diese Datentypen als 'Modultypen'. Daher rührt auch die Bezeichnung solcher Module als 'Programmierbares Modul'.

Programmierbare Module werden über, die für sie definierten, Modultypen in die Produktion der Dokumente eingebunden. Dabei werten sie die für sie eingetragenen Parameterwerte aus. (Abb.02-0406).

Diagramm ModuleAbb.02-0406

Mit der Auswertung der Daten des Modultypen erfährt die Software des Moduls welches Programm für die Produktion seiner Ansicht auszuführen ist.

Modultypen

Für Modultypen wird eingestellt, ob sie von dem Parser des Template oder von dem Parser der Content in die Produktion eingebunden werden.

Abhängig davon wird ihr Produkt frühzeitig von dem Resolver der Software angefordert und im Produktionsspeicher abgelegt, oder der Produzent des Template veranlasst das Modul zur Produktion und bindet das Produkt außerhalb des Contentbereichs in den Rahmen des Template ein.

Modultypen deren Option 'Typ' für Templates deklariert ist, werden von den Auswahllisten für die Deklaration von Modulen der Templates und Inhalte angezeigt. Modultypen, die als vom Typ Content deklariert sind, werden in den entsprechenden Auswahllisten des Content Editors angezeigt.

Der Typ der Module dient als Voreinstellung für Autoren beim Einsatz von Modulen.

Module deren Modultypen für Inhalte deklariert stehen Administratoren und Autoren bereit. Dahingegen stehen Module deren Modultypen für Templates deklariert wurden ausschließlich Administratoren zur Auswahl bereit.

Die Ausgrenzung von Autoren erfolgt dadurch, dass sie keine Zugriffsberechtigung für die Benutzung der Werkzeuge zur Verwaltung von Templates besitzen.

Technisch ist es grundsätzlich nicht von Bedeutung, ob das Produkt des Moduls in einem Inhalt oder in den Rahmen des Template erscheint. Lediglich wenn das Modul Laufzeitvariable des Contentparsers erfordert, kann es technisch notwendig sein das Modul von dem Contentparser verarbeiteten zu lassen.

Schutz von systemrelevanten Inhalten vor Autoren

Inhalte, die Module oder Dateien laden, und dabei Code auswerten, sind für den Internetsite sicherheitsrelevant.

Aus diesem Grund sind die Eingabefelder für die Zuweisung von Modulen und Dateien ausschließlich Administratoren vorbehalten. Ist der Anwendern nicht als Administrator oder Superadministrator autorisiert, werden für diese Felder eingehende Daten annulliert.

Themen, die wie die Anzeige von Suchergebnissen, zusätzlich auch systemrelevant sind, und auf die Einbindung von Modultypen angewiesen sind, müssen vor dem Zugriff durch Autoren und vor versehentlichem Löschen geschützt werden.

Der Schutz vor dem Zugriff durch Autoren wird mit dem Editor der Kapitel, über die Einstellung der Benutzergruppen, geregelt. Ausschließlich die dort ausgewählten und damit deklarierten Benutzergruppen erhalten Zugriff auf die Werkzeuge zur Bearbeitung der Themen des jeweiligen Kapitels.

Die systemrelevanten Themen selbst sollten als 'geschützt' eingestellt werden. Dieses Signal verhindert, das Anwender ein Thema oder seine Inhalte versehentlich löschen.

Der Schalter des Signals ist öffentlich sichtbar. Ist er aber eingeschaltet, dann kann er ausschließlich von dem Superadministrator wieder ausgeschaltet werden. Der Parser des Request annuleirt dann alle Daten, die für dieses Signal eingehen und nicht von dem Superadministrator eingesendet wurden.

Thema für Suchergebnisse einrichten

Wie in Abschnitt 'Implementation der Suche' angekündigt wurde, richten wir mit dem Contentmanager zuerst ein Kapitel, Thema und einen Inhalt für die Anzeige der Suchergebnisse ein (Abb.02-0506).

Thema für Suchergebnisse einrichtenAbb.02-0506

Wenn die Suche öffentlich ist, dann achten Sie darauf, dass das Thema, des Inhalts öffentlich und für alle Benutzer freigegeben ist (Abb.02-0511).

Thema für Suchergebnisse einrichtenAbb.02-0511

Das Thema kann für bestimmte Autorisationen verborgen bleiben. Für solche Fälle ist darauf zu achten, dass auch das Template von dem aus die Suchergebnisse angefordert wird, für diese Autorisationen verborgen bleibt. Menüschalter, die auf dieses Template führen müssen entsprechend autorisiert werden.

Fordert ein unautorisierter Benutzer mit seiner Suchabfrage ein Thema an, für das er nicht autorisiert ist, dann erhält er einen leeren Inhalt mit einer Fehlermeldung, die ihn darauf hinweist, dass der von ihm angeforderte Inhalt nicht existiert.

Zusätzlich achten Sie auch darauf, dass das Thema als 'Geschützter Systeminhalt' geschaltet ist damit der Inhalt nicht versehentlich gelöscht werden kann.

Für das Kapitel werden die Benutzergruppen so geschaltet, dass ausschließlich Administratoren und der Superadministrator das Recht haben die Themen und Inhalte dieses Kapitels zu bearbeiten (Abb.02-0606).

Thema für Suchergebnisse einrichtenAbb.02-0606

Programmierung SQL Abfragesätzen

Die Software verfügt über ein Programm, das aus gespeicherten Vergleichen SQL Abfragesätze zusammenstellt.

Unter SQL Abfragesätzen versteht die Software allgemein und grundsätzlich sogenannte SQL WHERE Klauseln, die um bestimmte Attribute erweitert werden können.

Die Erfassung, Verwaltung und Zusammenstellung der Abfragesätze erfolgt mit dem SQL Manager. Der Manager ist über das Backend erreichbar.

Funktionsweise und Aufbau

Die Funktionsweise des Managers ist vergleichsweise dieselbe wie bei den anderen Managern der Software: Im Auswahlbaum des Commander wird ein Datenobjekt ausgewählt und bezogen auf das ausgewählte Objekt werden die angebotenen Aktionen ausgeführt.

Die für den SQL Manager relevanten Datenobjekte sind Datensätze die ein Datenobjekt bezeichnen und Bezugsdatensätze darstellen.

Für die Definition eines Abfragesatzes wird zuerst ein Bezugsdatensatz erstellt, an dem die Software die darauf bezogenen weiteren Daten des Abfragesatzes erkennt. Bezogen auf diesen Bezugsdatensatz werden anschließend in einer anderen Datenbanktabelle Vergleichsausdrücke definiert.

Die mit Fremdreferenzen angebundenen Datensätze der Vergleichsausdrücke bilden gemeinsam mit dem Bezugsdatensatz einen Relationstyp und ein Datenobjekt.

Abfragesatz zusammenstellen und speichern

An anderer Stelle ist bereits gesagt worden: Die Software versteht unter 'Abfragesatz' SQL WHERE Klauseln.

Sind für einen Abfragesatz Vergleichsausdrücke definiert worden, dann kann der Anwender von dem dem Editor aus einen Abfragesatz zusammenstellen lassen. Der Editor zeigt den Abfragesatz anschließend in einem Textfeld an.

Der Anwender kann den gelieferten Abfragesatz anschließend ergänzen und mit den Änderungen abspeichern.

Die zusammengestellte WHERE Klausel wird erst dann gespeichert wenn das Formular versendet wird. Allein durch die Anforderung der Zusammenstellung erfolgt noch kein Eintrag in das Register der Abfragesätze.

Abbildung 02-1611 zeigt das Formular.

Manuelle Erweiterung des SQL Abfragesatzes

Der Klausel können Gruppierungen oder Sortierungen angefügt werden.

Manuell hinzugefügte Erweiterungen werden jedoch nicht für neuerliche Zusammenstellungen berücksichtigt und gehen verloren, wenn der Abfragesatz erneut zusammengestellt wird.

Sollte eine Zusammenstallung irrtümlich angefordert worden sein, so kann der SQL Editor aus dem Administrationsmenü heraus neu angefordert werden. Solange der Datensatz nicht gespeichert wurde zeigt der Editor wieder den ursprünglich gespeicherten Abfragesatz an.

Verarbeitung von Gruppierungen und Sortierungen

Wird ein Abfragesatz manuell durch eine Gruppierung oder Sortierung erweitert, dann ignoriert der SQL Assembler, von dem später der SQL Befehl zusammengestellt wird, alle Eingaben die von Klienten für Sortierungen oder Gruppierungen eingehen.

Für den Empfang solchen Eingaben stellt der Empfänger der Software spezielle Speicherstellen bereit, die entsprechende Werte aus wohl bekannten Eingangsparametern aufnehmen. Der direkte Empfang von SQL Befehlen ist ausgeschlossen, aber beispielsweise versendet der Listengenerator 'AutoTable' solche, dem Empfänger wohl bekannten, Parameter.

Soll der Benutzer einer Listenanzeige die Sortierung oder Gruppierung steuern können, dann darf der dafür definierte SQL Abfragesatz keine 'ORDER' oder 'GROUP BY' Anweisung dafür enthalten.

Diese Regelung gilt nicht für das 'DESC' Attribut, das gesondert ausgewertet wird. Allerdings kann das 'DESC' Attribut nicht von Administratoren fest vorgegeben werden.

Wenn keine andere Anweisung dafür vorliegt, dann werden alle Abfragen standardmäßig in aufsteigender Reihenfolge präsentiert.

Verwaltung von Vergleichsausdrücken

Vergleichsausdrücke können erstellt, bearbeitet und gelöscht werden. Der Editor und Initiator von Vergleichsausdrücken ist über den Commander des Managers zu erreichen.

Verbotene Zeichenfolgen

Als Abfragesätze sind ausschließlich einfache SQL WHERE Klauseln erlaubt in denen keine weiteren SQL Befehle vorkommen dürfen.
Explizit als verboten behandelt werden nachfolgende Worte:

  • select,
  • insert,
  • delete,
  • create,
  • alter.

Andere Einträge führen zu fehlerhaften Abfragen, die nicht gemeldet werden.

Anwendung

Wir begeben uns in den SQL Manager und definieren zuerst den Abfragesatz (Abb.02-1606).

Abfragesatz erstellenAbb.02-1606

Die Abbildung zeigt im Auswahlbaum bereits vorhandene Abfragesätze an.

Mit dem Befehlsschalter 'Abfragesatz Erstellen' haben wir das Initiator Formular für die Registrierung des Abfragesatzes aufgerufen.

In dem Feld 'Name' geben wir den Namen des Abfragesatzes ein und als Datenquelle wählen wir die Datenbanktabelle 'contentattribtes' aus.

Anschließend versenden wir das Formular mit 'Erstellen' und erhalten vom Server den SQL Editor als Antwort (Abb.02-1611).

Abfragesatz bearbeitenAbb.02-1611

Die Abbildung 02-1611 zeigt im unteren Sektor die von uns bereits definierten Bedingungsausdrücke.

Anzumerken ist, dass wir die Bedingungen in Klammern gefasst haben. Das wäre für die von uns gewünschte Abfrage nicht zwingend erforderlich. Die Abfrage soll jedoch möglicherweise nachfolgend mit optionalen Attributen, wie einem Filter für die Sprache, versehen werden. Die entsprechenden Attribute können mit einem AND Operator angebunden werden und schränken dann die Ergebnisse auf die betreffende Sprache ein.

Wird in einer der beiden Zeilen das Editor Icon betätigt, dann erhalten wir von dem Server den Editor zur Manipulation der entsprechenden Vergleichsausdrücke zurück (Abb.02-1706).

Bedingung bearbeiteAbb.02-1706

Vergleichsausdrücke werden mit einem Registrar Formular erzeugt, dass über den Commander des Managers mit dem Schalter 'Bedingung hinzufügen' bezogen werden kann. (Abb.02-1711).

Wird der Registrar versendet, dann erstellt die Software einen neuen Datensatz für die Definition einer Abfragebedingung.

Wird die Option 'Alle' ausgewählt, dann erstellt die Software Bedingungen für alle Attribute der Datenbanktabelle.

Bedingung hinzufügenAbb.02-1711