BeeBase

Programmable relational database
with graphical user interface Support This Project
This page is also available in English Français

Handbuch

Die folgende Dokumentation ist Bestandteil der BeeBase-Distribution und gibt es auch als PDF.


[ << ] [ >> ]           [Anfang] [Inhalt] [Index] [ ? ]

11. Sortieren

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

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.


11.2 Sortieren nach Feldern

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.


11.3 Sortieren nach einer Funktion

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.


11.4 Sortierung ändern

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:

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.


11.5 Neu sortieren aller Datensätze

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 30. September 2024 mit texi2html generiert.