Jedem Datensatz sind drei Nummern zugeordnet:
- Die Nummer des Datensatzes
- Die Nummer des ausgewählten Datensatzes
- Die Sequenznummer
Die Datensatznummer ist die absolute Nummer für einen Datensatz. Jeder neue Datensatz erhält automatisch eine Datensatznummer, die konstant bleibt, bis dieser Datensatz gelöscht wird. Datensatznummern beginnen bei Null. Sie sind nicht einmalig, da die Nummern gelöschter Datensätze wieder für neue Datensätze verwendet werden. Die Nummern ändern sich auch, wenn die Datenbank komprimiert oder repariert wird.
Die Nummer des ausgewählten Datensatzes ist die Position des Datensatzes in der aktuellen Auswahl. Wird die aktuelle Auswahl geändert oder neu sortiert, ändert sich meist auch diese Datensatznummer. Die Numerierung für ausgewählte Datensätze beginnt bei Eins (1).
Die Sequenznummer ist eine einmalige, nicht wiederverwendbare Nummer für ein Datenfeld eines Datensatzes. Sie lässt sich über die Eigenschaft Autoincrement im Inspektor, das SQL Attribut AUTO_INCREMENT oder die Funktion Sequence number zuweisen. Sie wird nicht automatisch mit jedem Datensatz gespeichert. Sie beginnt standardmäßig bei Eins (1) und erhöht sich für jeden neuen Datensatz um Eins. Im Gegensatz zu Datensatznummern wird eine Sequenznummer nicht wieder verwendet, wenn ein Datensatz gelöscht bzw. eine Datenbank komprimiert oder repariert wird. Über Sequenznummern erhalten Sie einmalige Identifikationsnummern für Datensätze. Eine während einer Transaktion erhöhte Sequenznummer wird nach Abbrechen der Transaktion nicht mehr zurückgestellt.
Hinweise:
- 4D führt keine Überprüfung aus, wenn Sie den internen automatischen Zähler einer Tabelle über den Befehl SET DATABASE PARAMETER ändern. Setzen Sie den Zähler herab, können neu angelegte Datensätze Nummern haben, die bereits zugewiesen wurden.
- Sequenznummern werden nicht zum Füllen von Datenfeldern mit einmaliger ID für Primärschlüssel empfohlen, insbesondere bei einer Struktur, die mehrere Datendateien verwendet. Weitere Informationen dazu finden Sie im Abschnitt Autoincrement. Wir raten dringend, einmalige IDs für Datensätze über UUIDs zu generieren.
Folgende Tabellen zeigen das Verhalten der verschiedenen Nummern für die Datensätze. Jede Zeile der Tabelle bezieht sich auf einen Datensatz. Die Anordnung der Zeilen zeigen die jeweilige Reihenfolge, in der die Datensätze in einem Ausgabeformular angezeigt würden.
- Spalte Daten: Daten aus einen Feld pro Datensatz. In unserem Beispiel, der Vorname.
- Spalte Datensatznummer: Die absolute Nummer des Datensatzes. Diese Nummer wird von der Funktion Record number zurückgegeben.
- Spalte Nummer des ausgewählten Datensatzes: Die Position des Datensatzes in der aktuellen Auswahl. Diese Nummer wird von der Funktion Selected record number zurückgegeben.
- Spalte Sequenznummer: Die einmalige Sequenznummer des Datensatzes. Diese Nummer wird von der Funktion Record number beim Erstellen des Datensatzes zurückgegeben. Sie wird im Datensatz abgespeichert.
Die erste Tabelle zeigt die Datensätze nach der Eingabe.
- Die Datensätze sind standardmäßig nach der Datensatznummer aufgelistet.
- Die Datensatznummer beginnt bei 0.
- Die Nummer des ausgewählten Datensatzes und der Sequenznummer beginnen bei 1.
Daten | Datensatznummer | Nummer des ausgewählten | Sequenznummer |
| | Datensatzes |
Ulli | 0 | 1 | 1 |
Tom | 1 | 2 | 2 |
Sabrina | 2 | 3 | 3 |
Sepp | 3 | 4 | 4 |
Lisa | 4 | 5 | 5 |
Hinweis: Die Datensätze behalten die Standardreihenfolge bei, wenn ein Befehl die aktuelle Auswahl ohne Neusortierung ändert; zum Beispiel, nach dem Menübefehl Alle Datensätze zeigen in der Designumgebung oder nach Ausführen des Befehls ALL RECORDS.
Die nächste Tabelle zeigt dieselben Datensätze nach Namen sortiert.
- Die jedem Datensatz zugewiesene Nummer bleibt erhalten.
- Die Nummer des ausgewählten Datensatzes spiegelt die neue Position der Datensätze in der sortierten Auswahl wieder.
- Die Sequenznummern bleiben konstant, wenn sie einmal zugewiesen und mit dem Datensatz abgespeichert wurden.
Daten | Datensatznummer | Nummer des ausgewählten | Sequenznummer |
| | Datensatzes |
Lisa | 4 | 1 | 5 |
Sabrina | 2 | 2 | 3 |
Sepp | 3 | 3 | 4 |
Tom | 1 | 4 | 2 |
Ulli | 0 | 5 | 1 |
Folgende Tabelle zeigt die Datensätze, nachdem Sepp gelöscht wurde.
- Nur die Nummern der ausgewählten Datensätze haben sich geändert. Sie geben die Reihenfolge wieder, in der die Datensätze angezeigt werden.
Daten | Datensatznummer | Nummer des ausgewählten | Sequenznummer |
| | Datensatzes |
Lisa | 4 | 1 | 5 |
Sabrina | 2 | 2 | 3 |
Tom | 1 | 3 | 2 |
Ulli | 0 | 4 | 1 |
Die nächste Tabelle zeigt die Datensätze, nachdem ein neuer Datensatz für Leo hinzugefügt wurde.
- Der neue Datensatz wird am Ende der aktuellen Auswahl angefügt.
- Der neue Datensatz erhält die Nummer des gelöschten Datensatzes für Sepp.
- Die Sequenznummer erhöht sich um Eins.
Daten | Datensatznummer | Nummer des ausgewählten | Sequenznummer |
| | Datensatzes |
Ulli | 0 | 1 | 1 |
Tom | 1 | 2 | 2 |
Sabrina | 2 | 3 | 3 |
Lisa | 4 | 4 | 5 |
Leo | 3 | 5 | 6 |
Folgende Tabelle zeigt die Datensätze, nachdem die Auswahl auf drei Datensätze reduziert und sortiert wurde.
- Nur die Nummern der ausgewählten Datensätze haben sich geändert.
Daten | Datensatznummer | Nummer des ausgewählten | Sequenznummer |
| | Datensatzes |
Sabrina | 2 | 1 | 3 |
Leo | 3 | 2 | 6 |
Tom | 1 | 3 | 2 |