[ << ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
Für jede Tabelle einer Datenbank lässt sich festlegen, in welcher Reihenfolge dessen Datensätze angezeigt werden sollen. Dieses Kapitel beschreibt, wie eine Reihenfolge festgelegt werden und welche Konsequenzen dies haben kann.
11.1 Keine Sortierung | Wenn keine Sortierung der Daten gewünscht ist. | |
11.2 Sortieren nach Feldern | Wie es arbeitet. | |
11.3 Sortieren nach einer Funktion | Frei einstellbare Reihenfolge. | |
11.4 Sortierung ändern | Wie eine Reihenfolge festgelegt wird. | |
11.5 Alle Datensätze neu sortieren | Falls Datensätze mal unsortiert sein sollten. |
Standardmäßig besitzt jede neu erzeugte Tabelle keine Sortierung. Dies bedeutet, dass beim Einfügen eines neuen Datensatzes der generierte Datensatz an der aktuellen Position, d.h. hinter dem aktuellen Datensatz, eingefügt wird. Beim Verändern der Felder eines Datensatzes verändert sich die Position des Datensatzes innerhalb der Tabelle nicht.
Manchmal ist es sinnvoll, die Datensätze nach bestimmten Feldern zu sortieren, z.B. nach dem Feld `Name', wenn die Tabelle ein solches hat.
In BeeBase lässt sich für jede Tabelle eine Liste von Feldern festlegen, nach denen die Datensätze sortiert werden sollen. Alle Datensätze werden zuerst nach dem ersten Feld dieser Liste sortiert. Falls zwei Datensätze in einem Feld gleich sind, dann legt das nächste Feld in der Liste die Reihenfolge fest. Für jedes Feld lässt sich zudem festlegen, ob die Datensätze auf- oder absteigend sortiert werden sollen.
Für die Festlegung der Reihenfolge werden die folgenden Regeln verwendet:
Typ Reihenfolge
Ganzzahl NIL < MIN_INT < ... < -1 < 0 < 1 < ... < MAX_INT
Auswahl (Auswahlwerte werden als Ganzzahlen angesehen)
Fließkommazahl NIL < -HUGE_VAL < ... < -1.0 < 0.0 < 1.0 < ... < HUGE_VAL
Zeichenkette NIL < "" < ... < "a" < "AA" < "b" < ...
mehrz. Text (Zeichenkettenvergleich wird unabhängig von Groß-/Klein-
schreibung durchgeführt)
Datum NIL < 1.1.0000 < ... < 31.12.9999
Zeit NIL < 00:00:00 < ... < 596523:14:07
Boolesch NIL < TRUE
Beziehung NIL < any_record
(Datensätze selbst können nicht zum Sortieren verwendet werden)
|
Wenn eine Sortierung für eine Tabelle festgelegt wurde, dann werden die Datensätze automatisch neu angeordnet, wenn ein neuer Datensatz hinzugefügt oder ein Feld eines Datensatzes verändert wird, das für die Sortierung relevant ist.
Manchmal ist ein komplexeres Sortierungsschema als die einfache Felderliste nützlich, die im vorherigen Abschnitt beschrieben wurde. Beispielsweise kann die Felderliste keine Beziehungsfelder aufnehmen, so dass es nicht möglich ist, die Datensätze nach einem Beziehungsfeld zu sortieren. Der Grund liegt darin, dass BeeBase mit Beziehungsfeldern nicht in der Lage sein kann, alle Datensätze zu jeder Zeit sortiert zu halten (siehe Vergleichsfunktion im Abschnitt über die Programmierung von BeeBase für mehr Details).
BeeBase bietet jedoch auch die Möglichkeit, eine Vergleichsfunktion zum Sortieren der Datensätze anzugeben. Es kann jede Funktion angegeben werden, die im Programmeditor von BeeBase geschrieben wurde. Die Funktion wird mit zwei Datensatz-Zeigern aufgerufen und der Rückgabewert soll die Sortierung der beiden Datensätze anzeigen. Die Funktion kann jede Operation zum Vergleich von Datensätzen verwenden, so dass es z.B. auch Datensätze mit Beziehungsfeldern vergleichen kann. Mehr zu diesem Mechanismus, siehe Vergleichsfunktion.
Falls eine Vergleichsfunktion zum Sortieren einer Tabelle verwendet wird, dann sollte man beachten, dass BeeBase nicht immer erkennen kann, wann Datensätze der Tabelle sortiert werden müssen, da die Abhängigkeiten unbekannt sind. Wenn Datensätze unsortiert sind, dann ruft man den Menüpunkt `Tabelle - Alle Datensätze neu sortieren' auf.
Um eine Sortierung für die aktuelle Tabelle zu erstellen, wird der Menüpunkt `Tabelle - Ändere Sortierung' ausgewählt. Dies öffnet ein Fenster, das folgende Punkte enthält:
Für eine Sortierung anhand einer Felderliste existieren folgene Elemente:
Jeder Eintrag in der Sortierliste hat auf der linken Seite ein Pfeilsymbol, das nach oben oder unten zeigt. Der Status lässt sich durch Doppelklicken auf das Pfeilsymbol umschalten. Wenn der Pfeil nach oben zeigt, dann ist die Sortierreihenfolge dieses Feldes aufsteigend, zeigt er nach unten, so ist sie absteigend.
Für eine Sortierung unter Verwendung einer Vergleichsfunktion gibt es folgende Elemente:
Des weiteren existieren folgende Knöpfe:
Um eine neue Feldsortierliste einzugeben, wählt man `Feldliste' im Feld `Typ' und drückt den `Löschen'-Knopf. Anschließend wird wie oben beschrieben per Verschieben & Ablegen eine neue Liste von Feldern angelegt. Wenn keine Sortierung gewünscht ist, dann fügt man einfach keine Felder der Sortierliste hinzu.
Ist die Sortierung festgelegt, wird der Knopf `Ok' gedrückt. BeeBase sortiert dann alle Datensätze der Tabelle.
Falls jemals einige Datensätze nicht sortiert sein sollten, z.B. wenn man eine Vergleichsfunktion zum Sortieren verwendet, dann können über den Menüpunkt `Tabelle - Neu sortieren aller Datensätze' alle Datensätze neu sortiert werden.
[ << ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
Dieses Dokument wurde am 28. September 2024 mit texi2html generiert.