<< | Inhaltsverzeichnis | Suchen | >> |
Die mit dem EBUS-GENERATOR-C erzeugten Programme können sowohl auf die herkömmlichen sequentiellen und Random-Dateien als auch auf EBUS-Indexdateien (MULTIPLE ISAM) und unter WINDOWS über ODBC auch auf beliebige Datenbanken zugreifen.
Jede EBUS-Indexdatei <name> besteht aus 3 physikalischen Dateien:
<name> |
enthält
die Daten bei Dateityp EBUS. |
<name>.i1 |
enthält den Index. |
<name>.ebu |
enthält die Struktur. |
Diese drei Dateien werden vom EBUS-GENERATOR-C logisch zu einer Indexdatei zusammengefaßt. Für den Anwender ist nur das logische Dateiformat wichtig, die physikalischen Dateizugriffe generiert der EBUS-GENERATOR-C. Dazu müssen die Beschreibungen der Indexdateien in der Datei-Verwaltung erfaßt werden.
Die sequentiellen und Random-Dateien werden nicht mit der Datei-Verwaltung erfaßt. Sie können mit der Programmiersprache des EBUS-GENERATOR-C durch die Anweisungen OPEN, INPUT, LINE INPUT, OUTPUT, PUT, GET und CLOSE angesprochen werden.
Die Beschreibungen der Indexdateien werden in der Bibliothek ebusdlib gespeichert. Jedesmal wenn bei der Programmerstellung ein neues Arbeitsverzeichnis (Directory) benutzt wird, wird dort diese Bibliothek automatisch angelegt. Die Datei-Beschreibungen müssen jeweils neu erstellt oder aus einer bereits vorhandenen Bibliothek kopiert werden.
|
|
|
Achtung: Die Datei-Beschreibung wird vom EBUS-GENERATOR-C zur Programmerstellung benötigt, sie enthält den Datei-Namen und das Indexdatei-Format. Zur Laufzeit des EBUS-Programms wird dann eine Indexdatei (die von der Datei-Bibliothek ebusdlib vollkommen unabhängig ist) mit dem entsprechenden Datei-Namen eröffnet. Darin sind die Daten entsprechend dem Indexdatei-Format abgespeichert. Das Indexdatei-Format definiert die Felder und Schlüssel der Datei. |
|
|
EBUS-Indexdatei-Format
Jede Indexdatei kann maximal 2 Milliarden Datensätze enthalten.
Jeder Datensatz besteht aus maximal 999 Feldern. Es gibt 4 verschiedene Arten von Feldern:
1) alphanumerisch (Maximallänge
999 Byte)
2) numerisch (Maximallänge 15
Byte)
3) numerisch gepackt
(Maximallänge 15 Ziffern, entspricht 8 Byte)
4) Datum (Länge 6 oder 8 Byte)
Die Summe der Feldlängen aller in einer Indexdatei definierten Felder ergibt die Länge des Datensatzes. Sie darf maximal 32767 betragen.
Die Daten werden in den Feldern im ASCII-Format abgelegt und so auch auf der Festplatte gespeichert.
Texte werden in alphanumerischen Feldern linksbündig gespeichert und mit Leerzeichen (Blanks) aufgefüllt.
Zahlen werden in numerischen Feldern als Dezimalzahlen abgespeichert. Positive Zahlen werden ohne, negative Zahlen werden mit Vorzeichen abgespeichert. Um das Feld vollständig zu füllen, wird die Zahl gegebenenfalls mit führenden Nullen aufgefüllt.
|
|
|
|
|
|
Feldlänge 6 |
-00123 |
Bei Feldern mit Nachkommastellen wird der Dezimalpunkt (bzw. das Komma) nicht mit abgespeichert. Es werden lediglich die Ziffern gespeichert.
|
|
|
|
|
|
Feldlänge 6, 2 Nachkommastellen |
|
Wert |
abgespeicherte Zeichenkette |
-
1.23 |
-00123 |
Bei numerisch gepackten Feldern werden zwei Ziffern in einem Byte gespeichert, indem sie nach einem bestimmten Algorithmus codiert werden. Dadurch ergibt sich eine Speicherplatz-Ersparnis von 50%. Die Sortierreihenfolge von numerisch gepackten Feldern ist die gleiche wie bei (ungepackten) numerischen Feldern.
Datumsfelder sind numerische Felder und werden vom EBUS-GENERATOR-C immer im Format JJJJMMTT (Länge 8) bzw. JJMMTT (Länge 6) abgespeichert.
|
|
|
|
|
|
Datum |
abgespeicherter Wert |
28.07.1991 |
19910728 |
Schlüssel (Keys)
Jeder Datensatz einer Indexdatei wird durch einen Haupt-Schlüssel (Primär-Key) eindeutig identifiziert. Daneben können 1 bis 9 Neben-Schlüssel (Sekundär-Keys) existieren. Das Schreiben, Lesen, Löschen oder Ändern eines Datensatzes erfolgt zur Laufzeit des generierten Programms über die Schlüssel (Keys).
Ein Schlüssel wird durch 1 bis 9 beliebig zusammengesetzte Felder eines Datensatzes definiert. Die Länge des Schlüssels ist die Summe der Feldlängen der in diesem Schlüssel festgelegten Felder. Sie darf höchstens 100 Byte betragen.
Die ASCII-Zeichenfolgen in den Feldern des Schlüssels ergeben den Wert des Schlüssels, nach dem sich die Sortier-Reihenfolge der Datensätze richtet. Die Werte des Haupt-Schlüssels müssen für jeden Datensatz eindeutig sein, um diesen eindeutig identifizieren zu können. Nebenschlüssel können mehrdeutig sein, d.h. mehrere Datensätze können denselben Nebenschlüssel-Wert besitzen. Innerhalb von gleichen Nebenschlüssel-Werten ist die Sortier-Reihenfolge zufällig.
Da Schlüssel-Werte von numerischen Feldern aus ihrer ASCII-Darstellung berechnet werden, entspricht bei positiven Zahlen der höheren Zahl auch der höhere Schlüssel-Wert. Da das Minus-Zeichen einen niedrigeren ASCII-Wert als die Null hat, haben alle negativen Zahlen einen niedrigeren Schlüssel-Wert als positive Zahlen. Aber betragsmäßig höhere negative Zahlen haben auch einen höheren Schlüssel-Wert als betragsmäßig niedrigere negative Zahlen, da die ASCII-Werte der Dezimalzahlen mit ihrem Wert ansteigen.
|
|
Zahl |
ASCII-Darstellung |
- 1 |
-00001 niedrigster Schlüssel-Wert |
Wie numerische Felder können auch numerisch gepackte Felder in Schlüsseln verwendet werden. Die Sortierreihenfolge ist dieselbe wie bei (ungepackten) numerischen Feldern.
Durch die Art der Abspeicherung von Datumsfeldern (JJMMTT bzw. JJJJMMTT) wird erreicht, daß ein höheres Datum auch einen höheren Schlüssel-Wert erzeugt.
Datei-Format auf der
Zielmaschine
Der EBUS-GENERATOR-C bildet bei der Generierung eines Programms die benutzten EBUS-Indexdateien automatisch auf das Dateisystem der jeweiligen Zielmaschine ab. Der Anwender kann deshalb die benötigten Indexdateien in der Datei-Verwaltung maschinenunabhängig beschreiben und braucht sich um die Realisierung dieser Dateien auf der jeweiligen Zielmaschine nicht zu kümmern.
Die einzelnen Funktionen sind in den nachfolgenden Abschnitten beschrieben.
Spezielle Funktionstasten für die Datei-Verwaltung
Eingabe
<F5> |
Löschen Dateibeschreibung |
<F6> |
Verwalten Schlüssel |
<F12> oder <CTRL/E> |
Speichern Bei Feldbeschreibungen werden Nr, Feldname, Länge, Typ, NKS und Bemerkung gespeichert Bei Schlüsselbeschreibungen wird der aktuelle Schlüssel gespeichert. |
<F9> |
Ausführliche Beschreibung (nur unter WINDOWS) |
Auswahl
<F2> oder leere Eingabe |
Bei Datei-Name werden die im aktuellen Verzeichnis vorhandenen Dateibeschreibungen angezeigt. Mit den Cursortasten kann der gewünschte Dateiname ausgewählt werden. Durch Eingabe von <RETURN> wird der ausgewählte Dateiname als Eingabe übernommen. Bei Eingabe von <ESC> wird kein Dateiname übernommen. Durch Eingabe der Anfangsbuchstaben kann nach Dateinamen gesucht werden. |
<F2> |
Bei der Definition der Schlüssel werden die Feldnamen der Dateibeschreibung in einem Fenster aufgelistet. |
<F7> |
Es werden die letzten 20 benutzten Dateinamen sortiert nach der Reihenfolge des Zugriff angezeigt. |
Blättern vorwärts/rückwärts
<F3> oder <CTRL/+> |
Blättern vorwärts: Bei
Feldbeschreibungen wird um 6 Zeilen vorwärts geblättert. |
<F4>
oder |
Blättern rückwärts: Bei
Feldbeschreibungen wird um 6 Zeilen rückwärts geblättert. |
<PGDN> |
Blättern 1 Seite vorwärts |
<PGUP> |
Blättern 1 Seite rückwärts |