Suchen | Neue Spalte | Speichern | Abbruch | Hilfe |
Übersicht (1/3) ≪ < 1 > ≫ + Artikel + Umsatz + Vertreter |
|
Wesentlich sind hier die drei Felder <Tabellenname>, <Sondertyp> und <Löschen erlauben>. Der Tabellenname darf - negativ formuliert - kein Leerzeichen und nicht '-' enthalten. Es sind jedoch alle Unicode-Buchstaben aus den Kategorien Letter Uppercase/Lowercase/Titlecase/Other als erstes Zeichen sowie, ab dem zweiten Zeichen zusätzlich die Unicode-Kategorien Number, Decimal Digit, Number, Letter und '_' möglich, sofern die Unicode-Zeichen nicht jünger als die Version 2.1 sind. Es ist folglich möglich, Tabellen- und Spaltennamen mit Buchstaben plus Akzenten, spanischen oder arabischen Zeichen zu erstellen. Da als serverseitige Standardeinstellung Latin1_General_BIN verwendet wird, ist bei der Erstellung von Tabellen zwischen Groß- und Kleinschreibung zu unterscheiden.
<Sondertyp> ermöglicht es, die Tabelle mit speziellen Eigenschaften zu erzeugen:
Der Newsletter-Text kann die beiden Sonderausdrücke '{0}' und '{1}' enthalten. Der erste Wert wird mit der Mail des Empfängers, der zweite mit dem zu dieser Mail gehörenden Schlüssel zum Abmelden belegt. Ein Beispiel:
Liebe Empfänger des Newsletters: Ihre Mail lautet: {0} Wenn Sie den Newsletter abbestellen wollen, wechseln Sie zur Seite https://beispiel.server-daten.de/newsletter-unsubscribe.html und kopieren den folgenden Wert in das dortige Feld: {1} Vielen Dank!Die später zu versendende Mail enthält weder die Zahlen 0/1 noch die geschweiften Klammern. Stattdessen werden die für diese Mail gültigen Werte eingesetzt. Eine Ausgabeseite zum Abmelden muß natürlich zuvor erstellt worden sein.
Wichtig: Eine Tabelle von diesem Typ kann pro Datenbank nur einmal erstellt werden. Ferner müssen nach der Erstellung oder Löschung einer solchen Tabelle die internen Standardprozeduren, die u.a. die Tabellenspalten speichern, neu erstellt werden. Das Feld 'FTP-Server' für die Tabellenspalten erhält eine neue Pulldown-Liste. Normalerweise werden die Standardprozeduren nur bei der Erstellung der Datenbank geschrieben. Die Datenbank ist während dieser Zeit in einem inkonsistenten Zustand.
Folgerung: Verwenden Sie nach dem Speichern einer neuerstellten FTP-Tabelle oder nach dem Löschen einer erstellten FTP-Tabelle Ihre Datenbank für ein bis fünf Minuten nicht! Falls Sie Ihre Datenbank doch verwenden, erhalten Sie diverse Fehlermeldungen. Und server-daten erhält jedesmal eine Bug-Benachrichtigung per Mail, allerdings wird aus der Fehlerbeschreibung die Ursache deutlich.
Für die letztere Variante findet sich ein einfaches Beispiel unter https://beispiel.server-daten.de/, der Punkt 'Nutzer-Login'. Nutzer können sich nach erfolgter Anmeldung einloggen und ihrem Nick Namen und Anrede zuweisen.
<Url-Überschreibungen>: Hier wird standardmäßig die Verwendung dieser Tabelle als Url-Überschreibung verweigert. Wurde eine Ausgabeseite mit sd:input-table - oder sd:rs -Elementen, dynamischen inneren Elementen und für eine andere Tabelle erstellt, so kann mit dieser Ausgabeseite auch jede Tabelle ausgegeben bzw. bearbeitet werden, für welche dieses Attribut eine entsprechende Freigabe zuläßt. Für Ausgabeseiten, die nur von autorisierten Nutzern aufgerufen werden dürfen, genügen in der Regel die intern erteilten Berechtigungen, um ein unzulässiges Lesen von Daten (Informationsleck) zu vermeiden. Wurde jedoch anonymen Nutzern Lese- und Schreibrecht an einer Tabelle erteilt, wie dies für Online-Bestellungen (siehe Pizza-Bestellung) notwendig ist, so können die hier eingegebenen Daten bei erlaubten Url-Überschreibungen zumindest ausgelesen werden. Für diesen Fall (anonyme Lese- und Schreibberechtigung) sollten Url-Überschreibungen untersagt bleiben.
<Xml-Ausgabe>: Tabellendaten können als Xml-Quelle aufgerufen werden. Näheres ist unter Xml-Ausgaben zu finden.
Die beiden anderen Felder <Tabellen-Alias> und <Beschreibung> werden intern nicht gesondert genutzt.
Suchen | Neue Spalte | Speichern | Abbruch | Hilfe |
Übersicht (1/3) ≪ < 1 > ≫ - Artikel
+ Vertreter |
|
Der Spaltenname muß den Regeln für Tabellennamen entsprechen und ist intern bei der Erstellung von Verknüpfungen, Abfragen und Ausgabeseiten zu verwenden. Der Spaltenalias ist ein frei wählbarer Name, für welchen die Einschränkungen für Spalten nicht gelten. Ist ein solcher Alias definiert, so wird dieser für die Anzeige der internen Masken und bei der Erstellung der Ausgabeseiten (Feld sd:label ) genutzt. Fehlt der Alias, wird in all diesen Fällen der tatsächliche Spaltenname verwendet.
Für die Datentypen Decimal, Währung / money und Datum/Uhrzeit muß der Wert immer im englischen bzw. weltweiten Standardformat angegeben werden, also mit Punkt als Dezimaltrennzeichen sowie '2006-12-24 22:00:00' (Weihnachten 2006) für das Datumsformat. Für den Nutzer wird allerdings nicht diese Darstellung, sondern die für seine Ausgabekultur typische Version verwendet. Ein Eintrag
3.5wird damit für einen deutschen Nutzer als
3,5ausgegeben und so auch korrekt verarbeitet. Für Datumsangaben kann zusätzlich
getdate()genutzt werden. Dann werden aktuelles Datum und Uhrzeit eingefügt.
Einschränkung: Der Standardwert wird sowohl bei neuen Datensätzen in den internen Masken als auch in Ausgabeseiten verwendet. Letzteres ist allerdings nur dann möglich, falls ein Button 'Neuer Datensatz' existiert. Wird eine Eingabemaske angeboten, die jeden Inhalt immer speichert, kann der Standardwert nicht genutzt werden. Hier leistet das sd:ro-value -Element das Gewünschte.
Wird beim Textfeld 'Volltextsuche' gewählt, so wirkt die Standardsuche nicht so, daß die Phrase am Feldanfang, sondern an einer beliebigen Position gesucht wird. Dies entspricht dem Sql-Code
Where Spaltenname Like '%' + <vom Nutzer übergebener Wert> + '%'Die Standardsuche verzichtet auf das erste Prozentzeichen, das vom MS-SqlServer bei der Like-Suche als Platzhalter verwendet wird.
Für beide Datentypen sind <maximale Länge> und <Sortierung> Pflicht, optional kann ein Sortiertyp festgelegt werden. Die maximale Länge kann bei varchar bis 8.000, bei nvarchar bis 4.000 Zeichen umfassen.
Die Sortierung und die Sortiertypen legen fest, an welcher Kultur sich die Sortierung orientiert. Ein Haken bei Groß/Klein bedeutet, daß 'a' und 'A' verschieden sind. Analog bedeutet Akzent, daß 'a' und 'à' als verschiedene Zeichen interpretiert werden. Kana betrachtet die japanischen Hiragana und Katakana als unterschiedlich. Breite unterscheidet Single-Byte- und Double-Byte-Darstellung desselben Zeichens voneinander.
Die binäre Option, welche mit Latin1_General als Standard verwendet wird, vergleicht binär und umfaßt alle Optionen. Ist diese Option gesetzt, so werden alle anderen Optionen ignoriert. Für eine Spalte mit diesen Optionen findet die Suche nach 'h' in 'A_Name' nicht die 'Hose'. Soll bei der Suche auf Textspalten Groß/Kleinschreibung ignoriert werden, so muß der Haken bei 'Binär' entfernt werden.
Eine Textspalte läßt sich zusätzlich durch Regular Expressions (Regulärer Ausdruck) einschränken. Dies sind Kürzel, wie sie unter Regular Expressions näher erläutert werden und mit welchen Textmuster genauer bestimmt werden können. Bei der Verarbeitung der Eingabedaten wird geprüft, ob der eingegebene Text das Suchmuster erfüllt. Falls nein, wird die Speicherung abgelehnt.
Falls ein regulärer Ausdruck genutzt wird, kann eine zusätzliche Fehlermeldung definiert werden. Diese sollte dem Nutzer näher erläutern, auf was bei der Dateneingabe zu achten ist. Die Standardfehlermeldung kann in diesem Fall nur stereotyp sagen, daß die Speicherung aufgrund einer Einschränkung abgelehnt worden sei.
Zusätzlich kann für int-Spalten im Feld <PDown-Werte> eine vereinfachte Pulldown-Liste definiert werden. Hierzu genügt es, eine Folge aus Ganzzahlen und Texten, durch Semikolon getrennt, einzutragen. So erzeugt der folgende Eintrag:
1;Frau;2;Herrdas Ergebnis:
Die Ganzzahlen werden in die Tabellenspalte eingetragen, die Klartextwerte werden angezeigt. Falls ein solches Feld zum Suchen verwendet wird oder falls es sich nicht um ein Pflichtfeld handelt, wird eine zusätzliche Option '---' hinzugefügt.
Für den Datentyp 'file' sind alle Felder ab 'Dateiname' relevant. Sie werden gesondert unter Dateien und Bilder erläutert.
[b] ... [/b] [i] ... [/i] [u] ... [/u] [pre] ... [/pre]Bei der Ausgabe steht eine zusätzliche Spalte zur Verfügung. Diese beginnt mit '_', gefolgt von dem eigentlichen Spaltennamen und ersetzt die obigen Ausdrücke durch ihre Html-Äquivalente fett/bold, italic/kursiv, underline/unterstrichen und preformat/vorformatiert (für Codebeispiele). Zusätzlich könnnen diese Html-Ersatzelemente mit Html-Attributen ergänzt werden. Diese werden direkt übernommen.
Es sind praktisch alle im <body>-Element zulässigen Html-Elemente erlaubt: table/tr/td für Tabellen, h1-h6 für Überschriften, ul/ol/li, dl/dt/dd für Listen und Definitionslisten, blockquote/em/strong, big/small/sup/sub für Hervorhebungen und Größenanpassungen.
Nicht möglich sind Links, Bilder, das Einfügen von JavaScript-Code und Objekte bzw. iframe-Elemente. Wesentlich ist, daß - analog zu den Regeln für wohlgeformte Xml-Elemente - auch diese Eckklammerelemente korrekt geschachtelt sind und daß jedes geöffnete Element wieder geschlossen wird. Allerdings führen Fehler nicht zum Blockieren der Speicherung, sondern nur zu einer unvollständigen Ersetzung durch die Html-Äquivalente. Folglich erzeugen sie unvollständig formatierte Ausgaben. Einzelne Eckklammern werden direkt sichtbar ausgegeben.
Im einzelnen gilt: Beim Bearbeiten einer Tabelle können vielfältige Fehler auftreten. Falls bsp. ein Textfeld verkleinert oder in ein numerisches Feld umgewandelt wird, kann eine solche Operation scheitern. In diesem Fall werden alle Änderungen verworfen, die Tabelle bleibt auf ihrem alten Stand. Wurden also sowohl Spalten verkleinert als auch weitere Spalten hinzugefügt und scheitert die Verkleinerung, so werden die Einträge für die neuen Spalten gelöscht. Abhängige Objekte werden nicht verändert. Bei der nächsten Suche nach Tabellen wird die Tabelle mit (F) markiert. Ein Klick auf die Tabellen-Hauptzeile zeigt den vom Datenbank-Server gemeldeten Fehler an. Anschließend muß die Tabelle einmal neu gespeichert werden, um die Fehlermeldung zu entfernen.
Wird die Tabelle nur umbenannt, so werden die Prozeduren zu Relationen, welche diese Tabelle als Basistabelle nutzen, neu erstellt. Diese Tabellen sind zum Zeitpunkt der Änderung deaktiviert. Werden Spalten umbenannt oder der Datentyp geändert, so werden Constraints und Relationen, welche diese Spalten nutzen, deaktiviert. Würden Constraints aktiv bleiben, so könnte die gewünschte Änderung scheitern. Für Relationen müssen der angezeigte Ausdruck sowie die Sortierausdrücke manuell überprüft werden. Views werden neu erstellt, so daß sie anschließend weiterhin verwendbar sind.
Das Löschen einer Spalte deaktiviert Relationen, Constraints und Indices, welche diese Spalte nutzen. Das Löschen einer Tabelle löscht die Constraints, Indices, Relationen, Views und Berechtigungssätze zu dieser Tabelle. Relationen werden in beiden Versionen gelöscht: Sowohl die Relationen, welche die zu löschende Tabelle als Grundtabelle verwenden - hier werden alle Ausdrücke unsinnig. Als auch die Relationen mit einer Spalte aus der zu löschenden Tabelle als Detailspalte. Wird diese Detailspalte entfernt, so fehlt auch der Bezugspunkt für die Relation. Abfragen und Ausgabeseiten, welche sich auf eine Tabelle beziehen, werden bei deren Änderung oder Löschung deaktiviert. Der in solchen Fällen erstellte Protokolleintrag zeigt server-daten als Ausführenden an.
Tabellenspalten werden im Menü 3 immer in der Reihenfolge ausgegeben, wie sie durch das Feld <Position der Spalte> festgelegt werden. Für das Untermenü entfallen deshalb Sortierpfeile. Bei einer Bearbeitung wird immer eine Protokollzeile für die ganze Tabelle erzeugt. Das Erstellen einer Tabelle mit drei Spalten erzeugt nur eine Protokollzeile, nicht vier.