Sie können die Tabelleneigenschaften über das Inspektorfenster definieren. Bestimmte Eigenschaften lassen sich auch das Kontextmenü für Tabellen festlegen.
Ein Trigger ist eine automatisch ablaufende Methode, sobald bestimmte Ereignisse in der Tabelle auftreten. Solche Ereignisse sind:
On saving new record
On saving an existing record
On deleting record
Trigger-Ereignisse können Sie im Inspektorfenster oder über das Kontextmenü der Tabelle einrichten (rechter Mausklick in den Tabellentitel):
Markieren Sie die Ereignisse, für die Sie einen Trigger aktivieren wollen.
Sie können direkt im Struktureditor auf Trigger zu einer Tabelle zugreifen, wenn Sie im Inspektor die Schaltfläche Bearbeiten, im Kontextmenü den Eintrag Methode bearbeiten wählen. Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache im Abschnitt Methodenarten.
Hinweise:
Sie können Trigger auch im Explorer auf der Seite Methoden des Explorer einrichten und anzeigen
Die Informationsleiste im Struktureditor zeigt an, welche Trigger für eine Tabelle aktiviert sind
Trigger, die Sie im Methodeneditor eingegeben haben, laufen nur, wenn die von Ihnen bestimmten Ereignisse auftreten.
Die Option „Unsichtbar“ blendet eine Tabelle im Anwendungsmodus und für Plug-Ins aus. Aktivieren Sie diese Option für Hilfstabellen oder Tabellen, die zeitweise nicht benutzt werden. Auf diese Weise können Sie auch steuern, welche Operationen ein Benutzer in einer Tabelle durchführen kann. Sie blenden die Tabelle und ihre Datenfelder in allen Editoren und einigen Dialogfenstern des Anwendungsmodus oder für Plug-Ins aus. Dazu gehören:
In keinem dieser Editoren kann der Benutzer die Tabelle oder eines ihrer Datenfelder sehen oder anwählen. Der Benutzer kann z.B. keine Datenfelder einer ausgeblendeten Tabelle in einen Schnellbericht oder ein Etikett setzen.
Hinweis: Wenn Benutzer diese Editoren einsetzen, können sie ihre Spezifikationen in Dateien auf der Platte speichern, z.B. Kriterien einer Suche oder Sortierung. Dafür werden auch unsichtbare Tabellen oder Datenfelder verwendet. Außerdem können Benutzer die Namen von ausgeblendeten Tabellen und Datenfeldern in das Dialogfenster eingeben.
Im Designmodus erscheinen ausgeblendete Tabellen und Datenfelder im Fenster des Struktureditors kursiv.
Sie können für jede Tabelle eine Farbe festlegen. Mit Farben machen Sie die Struktur umfangreicher Datenbanken übersichtlicher. Sie können z.B. eine Farbe für alle Tabellen zu Kunden definieren und eine andere für Tabellen zu Artikeln.
Hinweis: Sie können auch jedem Feld oder jeder Verknüpfung eine Farbe zuweisen (siehe Abschnitt Definition).
Wählen Sie eine oder mehrere gewünschte Tabellen aus und weisen eine Farbe zu. Diese können Sie folgendermaßen aufrufen:
In der Werkzeugpalette des Editors mit der Schaltfläche Farbe
Im Kontextmenü der Tabellen mit dem Eintrag Farbe,
Mit dieser Option können Sie das Löschen einer Datensatzauswahl optimieren, die über den 4D Befehl DELETE SELECTION erstellt wurde. Wenn 4D eine Auswahl löscht, werden auch die Datensatz-Marker gelöscht. Ein Marker ist ein dem Datensatz zugewiesener Kopfteil mit Informationen zu diesem Datensatz. Das Löschen von Markern und Datensätzen ist langsamer als nur Datensätze löschen. In bestimmten Fällen ist es wünschenswert, nicht automatisch die Datensatz-Marker zu löschen. Diese Option ermöglicht, die gewünschte Löschart zu wählen. Um das Löschen einer umfangreichen Auswahl über den 4D Befehl DELETE SELECTION zu beschleunigen, deaktivieren Sie die Option Datensätze definitiv löschen. Dann werden die Datensatz-Marker nicht gelöscht. Diese Option lässt sich nicht per Programmierung setzen.
Ist diese Option markiert, erzeugt 4D die erforderliche Information zur Replizierung der Datensatze der Tabelle (Sie basiert insbesondere auf dem Primärschlüssel der Tabelle). Damit lassen sich Daten zwischen zwei oder mehr 4D Anwendungen synchronisieren.
Ist die Option aktiv, muss der Mechanismus zur Replikation über spezifische Befehle der SQL Programmiersprache in 4D implementiert werden. Weitere Informationen dazu finden Sie im Handbuch 4D SQL Reference im Abschnitt Replication via SQL. Weitere Informationen zur Replikation mit HTTP finden Sie im Handbuch 4D Programmiersprache im Abschnitt URL 4DSYNC/.
Diese Option ist standardmäßig nicht markiert. Damit sie verfügbar wird, müssen Sie einen Primärschlüssel für die zu replizierende Tabelle definieren. Andernfalls ist die Option in Grauschrift. Den Primärschlüssel setzen Sie direkt im Struktureditor (siehe unten).
Diese Option steuert, ob die Tabelle für 4D Mobile Anfragen, die an die 4D Datenbank gesendet werden, zugänglich ist. Standardmäßig sind alle Tabellen in 4D Mobile veröffentlicht. Aus Sicherheitsgründen wollen Sie aber nur bestimmte Tabellen Ihrer Datenbank für 4D Mobile Aufrufe veröffentlichen. Sie wollen z.B. die Tabelle [Benutzer], die Namen und Kennwörter speichert, nicht veröffentlichen.
Wollen Sie eine Tabelle bzw. alle darin enthaltenen Felder nicht veröffentlichen, deaktivieren Sie die Option Mit 4D Mobile Service veröffentlichen für die Tabelle.
Hinweis: Sie können diese Option auch für ein einzelnes Feld der Tabelle setzen, siehe Feldeigenschaften.
Diese Option lässt sich im Rahmen der "4D Mobile" Funktionalität verwenden. Weitere Informationen dazu finden Sie im Handbuch 4D Mobile.
Diese Option ist standardmäßig für jede neu angelegte Tabelle und für alle Tabellen in konvertierten Datenbanken markiert. Diese Option sollte für die Tabellen in der Regel markiert sein. Für temporäre Tabellen oder alles was keine Überwachung benötigt, können Sie die Option deaktivieren und so die Größe des Logbuchs verringern.
Hinweis: Die Option erscheint in Grauschrift, wenn die Tabelle keinen Primärschlüssel hat.
Bitte beachten Sie, dass diese Option nur angibt, dass die Daten der Tabelle protokolliert werden sollen; sie aktiviert nicht das Führen des Logbuchs selbst auf Strukturebene (siehe Logbuch verwalten).
Im Bereich Kommentar des Inspektorfenster können Sie zusätzliche Information zur Tabelle ablegen. Diese Kommentare sind für alle Entwickler zugänglich. Beachten Sie, dass jedes Feld und jede Verknüpfung einen eigenen Kommentarbereich hat.
Der Bereich SQL des Inspektorfenster enthält das PopUp-Menü Schemas und einen Informationsbereich.
Das Menü Schemas listet alle SQL Schemas auf, die in der Datenbank spezifiziert sind. Über dieses Menü können Sie das Schema setzen, zu dem die Tabelle gehören soll (Sie können diese Eigenschaft auch über SQL Befehle ändern). Jede Datenbank hat mindestens ein Schema mit Namen DEFAULT_SCHEMA. Standardmäßig gehören alle Tabellen zu diesem Schema. Weitere Informationen dazu finden Sie im Handbuch 4D SQL Reference unter Schemas.
Der Informationsbereich gibt an, ob der Name der Tabelle für SQL nicht-erlaubte Zeichen enthält. SQL erlaubt z.B. im Gegensatz zu 4D keine Namen mit Leerzeichen.
Ein Primärschlüssel gibt die Felder zur eindeutigen Identifizierung der Datensätze in einer Tabelle an. Das ist insbesondere für die Funktionalität Datensatz Replikation in einer 4D Tabelle (siehe Replication via SQL) und zum Protokollieren der Daten (siehe Logbuch verwalten) notwendig.
Sie können Primärschlüssel direkt über das Kontextmenü des Struktureditors erstellen, bearbeiten und entfernen.
Hinweis: Primärschlüssel lassen sich auch in der SQL Sprache über die Klausel PRIMARY KEY, gefolgt von der Liste der Spalten, setzen (siehe Primary key im Handbuch 4D SQL Reference).
Felder mit Primärschlüssel sollten mit Bedacht verwaltet werden, um jederzeit die Datenintegrität zu gewährleisten. Sie müssen insbesondere folgende Regeln einhalten:
sie dürfen nicht leer sein
sie müssen einmalig sein
einmal angelegt, sollten sie prinzipiell nie verändert werden, besonders wenn:
4D Features zur Replikation oder Synchronisation aktiviert sind
4D Mobile (oder ähnlich) aktiviert ist
die Logbuch-Funktion der Anwendung aktiviert ist (Backup oder logisches Spiegeln über das Logbuch)
Primärschlüssel zur Kommunikation oder Synchronisation mit externen Systemen verwendet werden.
Wir raten generell davon ab, Primärschlüssel zu verändern, selbst wenn 4D das für spezifische Fälle erlaubt. Wenn Sie dennoch Ihr Feld mit Primärschlüssel verändern müssen, ist es besser, stattdessen ein neues Feld mit Primärschlüssel mit automatischer Zuweisung anzulegen.
Felder mit Primärschlüssel können vom Typ Lange Ganzzahl oder im UUID Format (alphanumerisch) sein. Für die meisten Fälle ist das UUID Format mit aktivierter Option Auto UUID besser geeignet. Denn UUIDs haben viele Vorteile, auch wenn der Typ Lange Ganzzahl weniger Speicherplatz benötigt. Sie vereinfachen z.B. das Zusammenlegen voneinander unabhängigen Anwendungen, den Datenimport und -export, die Implementation von Spiegel / Replikation Strategien oder die Synchronisation mit externen Systemen.
Um einen Primärschlüssel im Struktureditor zu erstellen:
Wählen Sie das bzw. die Felder für den Primärschlüssel der Tabelle aus.
Klicken Sie mit der rechten Maustaste und wählen im Kontextmenü den Eintrag Primärschlüssel erzeugen. Dieser Menübefehl ist nur für Primärschlüssel passende Feldtypen aktiv:
Pro Tabelle ist immer nur ein Primärschlüssel möglich. Ist bereits ein Primärschlüssel angegeben, erscheint eine Fehlermeldung, dass zuerst der vorhandene Primärschlüssel deaktiviert wird.
Der Primärschlüssel wird sofort angelegt. Die im Primärschlüssel enthaltenen Felder erscheinen im Editor unterstrichen, die SQL Beschreibung zeigt das PRIMARY KEY Schlüsselwort.
Erstellen Sie einen Primärschlüssel in einer Tabelle, die bereits Datensätze enthält (in einem neuen oder vorhandenen Feld), prüft 4D die Konformität aller Werte oder führt automatisch Operationen zur Aktualisierung durch:
Das bzw. die Felder, die zum Primärschlüssel gehören, dürfen keine doppelten Werte enthalten. Bei doppelten Werten in den Datensätzen der Tabelle erscheint eine Fehlermeldung, dass sich aus diesem Grund kein Primärschlüssel anlegen lässt.
Sind die duplizierten Werte leer oder Nullwerte (bei hinzugefügtem Schlüsselfeld), können Sie die entsprechende Option zum automatischen Generieren prüfen: für Felder vom Typ Alpha in oder für Felder vom Typ Lange Ganzzahl. In diesem Fall prüft 4D alle Datensätze der Tabelle und weist jedem Primärschlüssel automatisch einen berechneten Wert zu. Beachten Sie, dass dieser Prozess sequentiell ist und bei einer größeren Anzahl Datensätze eine Zeit lang dauert.
Hinweis: Die Spalten im Primärschlüssel akzeptieren keine NULL Werte.
In 4D v14 erhält jede neu erstellte Tabelle in der Struktur standardmäßig einen Primärschlüssel:
Dieses Feld heißt standardmäßig "ID", ist vom Typ Lange Ganzzahl und hat folgende Attribute:
Einmalig
Eingabe von NULL Werten verweigern
Autoincrement,
Automatischer Index
Hinweis: Auf der Seite Struktur der 4D Einstellungen können Sie Name und Typ der standardmäßig angelegten Primärschlüssel verändern.
Sie können dieses Feld so verwenden oder bei Bedarf Name bzw. Eigenschaften verändern, wenn Sie z.B. ein UUID Feld verwenden wollen. Sie können es auch löschen, um ein anderes Feld bzw. Felder als Primärschlüssel einzusetzen. Sie müssen jedoch in jeder 4D Tabelle mindestens einen Primärschlüssel beibehalten.
Hinweis: Tabellen, die in die Datenbank importiert werden oder mit dem Befehl CREATE TABLE erstellt wurden, erhalten keine standardmäßigen Primärschlüssel.