<< | Inhaltsverzeichnis | Suchen | >> |
Die Erfassung der Dateibeschreibung gliedert sich in folgende Teile:
a)
Eingabe des Datei-Namens und des Dateityps
b) Erfassen der Dateifelder
c) Erfassen der Schlüssel
a) Eingabe des
Datei-Namens und des Dateityps
Datei-Name |
Der Datei-Name besteht aus 1 bis 8 Zeichen. Er muß mit einem Buchstaben beginnen und darf nachfolgend nur Buchstaben und/oder Ziffern enthalten. Er wird vom EBUS-GENERATOR-C zur Identifizierung dieser Datei und von den generierten Programmen als Dateiname verwendet. |
||
|
Nach einer leeren Eingabe oder mit <F2> bei Datei-Name werden die vorhandenen Dateibeschreibungen am Bildschirm angezeigt. Die Anzeige kann mit <ESC> verlassen werden. Bei Auswahl eines Datei-Namens durch <RETURN> wird der ausgewählte Datei-Name als Eingabe übernommen. |
||
Dateityp |
Folgende Formate stehen zur Auswahl: |
||
|
<E>: |
Die Datensätze werden vom EBUS-Programm im EBUS-Format auf besonders effiziente Weise abgelegt. Dadurch steht der volle Funktionsumfang der EBUS-Indexdatei-Verwaltung zur Verfügung. |
|
|
<D>: |
Die Datensätze werden nach DBASE-Konventionen abgelegt. Die Datendateien sind voll DBASE-kompatibel. Die Indexdatei <dateiname>.i1 wird im EBUS-Format angelegt. |
|
|
<B>: |
BTRIEVE-Datei |
|
|
<C>: |
C-ISAM-Datei |
|
|
<O>: |
ODBC-Datei: Dieser Dateityp ist nur bei WINDOWS-Programmen möglich. Über ODBC können beliebige Datenbanken angesteuert werden. |
|
|
Für den Datei-Typ <D> gelten folgende Konventionen und Einschränkungen: |
||
|
· Der Feldname darf maximal 10 Stellen lang sein. (Das $-Zeichen bei alphanumerischen Feldern wird nicht mitgerechnet.) |
||
|
· Punkte im Feldnamen werden beim Eintrag in den Header der DBASE-Datei in Unterstreichungszeichen <_> umgewandelt. |
||
|
· Memo-Felder besitzen den Typ <A> (alphanumerisch) und haben genau die Länge 10. Unter Bemerkung muß am Anfang in Großbuchstaben <MEMO> stehen, dahinter kann beliebiger Text folgen. Im EBUS-Programm können Memo-Felder nur mit der Anweisung PUTMEMO geschrieben und mit der Funktion GETMEMO$ gelesen werden. |
||
Beschreibung |
Text von maximal 35 Zeichen, der nur zur Dokumentation dient und für die Programmgenerierung und Datenspeicherung ohne Bedeutung ist. |
||
|
|||
|
|
||
Feldname Typ Feldlänge NKS Bemerkung |
TEXT$ A 10 MEMO |
|
· Logische Felder besitzen den Typ <A> (alphanumerisch) und haben genau die Feldlänge 1. Unter Bemerkung muß am Anfang in Großbuchstaben <LOGIC> stehen, dahinter kann beliebiger Text folgen. |
|
|
Logische Felder besitzen die Werte <T> für logisch wahr (true) und <F> für logisch falsch (false). |
|
|
|
|
|
|
|
|
|
|
Feldname Typ Feldlänge NKS Bemerkung |
OK$ A 1 LOGIC |
|
· Gepackte numerische Felder sind nicht zulässig. (Typ <P>) |
|
|
· Datumsfelder haben immer die Länge 8. |
|
|
· Bei numerischen Feldern mit Nachkommastellen wird der Dezimalpunkt ebenfalls abgespeichert. Deshalb müssen Masken- und Reportfelder eine Stelle kürzer sein als bei Feldlänge angegeben. |
|
|
· Die Datei, die die Daten enthält, hat die Erweiterung .dbf (z.B. kunden.dbf). Diese Datei ist voll DBASE-kompatibel und kann auch von DBASE aus angesprochen werden. |
|
|
|
|
|
Für den Datei-Typ <C> gelten folgende Konventionen: |
|
|
Die EBUS-Datentypen numerisch, Datum und alphanumerisch werden bei C-ISAM als CHARTYPE gespeichert. Die C-ISAM-spezifischen Datentypen INTTYPE, LONGTYPE, FLOATTYPE, DOUBLETYPE und DECIMALTYPE werden ebenfalls unterstützt. Diese Datentypen sind als numerische Felder zu erfassen. Bei Bemerkung muß am Anfang in Großbuchstaben der C-ISAM-Datentyp angegeben werden. |
|
|
|
|
|
|
|
Feldname Typ Feldlänge NKS Bemerkung |
H1 N 2 INTTYPE H2 N 4 LONGTYPE H3 N 4 2 FLOATTYPE H4 N 8 3 DOUBLETYPE H5 N 11 2 DECIMALTYPE |
|
Bei DECIMALTYPE handelt es sich um gepackte Daten. Bei Feldlänge ist die Länge anzugeben, die im Datensatz belegt werden soll. NKS bezeichnet die Anzahl der realen Nachkommastellen. Mit dem Datentyp DECIMALTYPE wird im Programm aber nicht gerechnet. Die Feldwerte werden nach dem Einlesen eines Datensatzes nach double konvertiert. |
Änderung des Dateityps
Die Änderung des Dateityps ist jederzeit möglich. Lediglich bei der Änderung von <E>, <B>, <C> oder <O> nach <D> (DBASE) müssen folgende Bedingungen erfüllt sein:
· Die Feldnamen dürfen nur aus maximal 10 Zeichen bestehen. Das $-Zeichen bei alphanumerischen Feldern wird dabei nicht mitgezählt.
· Die Datei-Beschreibung darf keine Datumsfelder der Länge 6 enthalten.
· Die Datei-Beschreibung darf keine gepackten numerischen Felder enthalten.
|
|
|
Achtung: Die Änderung des Dateityps bezieht sich nur auf die Datei-Beschreibung. Versucht nach der Änderung des Dateityps von <E> nach <D> ein neu generiertes EBUS-Programm auf eine bereits existierende Indexdatei zuzugreifen, wird das Programm mit Fehler abgebrochen (Dateityp EBUS/DBASE stimmt nicht überein, OK2 = 916). |
|
|
b) Erfassen der Dateifelder
Steuertasten
Mit den Tasten <RETURN> bzw. <®|> und <|¬> wird feldweise vorwärts bzw. rückwärts gesprungen. Mit den Tasten <¯> und <> kann die Zeile gewechselt werden. Mit <F3> und <F4> kann jeweils 6 Zeilen vorwärts bzw. rückwärts geblättert werden. Mit <PGDN> bzw. <PGUP> wird 1 Seite vorwärts bzw. rückwärts geblättert.
Beschreibung
der Eingabefelder
Eingabefeld |
Bedeutung |
|
Feldname |
Hier ist der Name des Dateifeldes einzugeben. Beliebige Kombinationen aus Buchstaben, Ziffern und Punkten sind zulässig. |
|
|
Ein alphanumerisches Feld muß mit dem Zeichen <$> enden, Typ wird dann automatisch mit <A> belegt. |
|
|
Mit <ESC> wird die Erfassung der Feldnamen beendet. |
|
|
Wird auf der 1. Position bei Feldname ein Punkt gefolgt von weiteren Zeichen eingegeben, so geschieht folgendes: |
|
|
Enthält der eine Zeile zuvor eingegebene Feldname keinen Punkt, so wird die neu eingegebene Zeichenfolge an den vorherigen Feldnamen angehängt und im aktuellen Eingabefeld angezeigt. Andernfalls werden die Zeichen nach dem letzten Punkt des vorherigen Eingabefeldes durch die neu eingegebenen Zeichen ersetzt. Mit <RETURN> oder <¯> kann der angezeigte Feldname übernommen werden. Diese Methode kann dazu verwendet werden, gleichartige Feldnamen schneller zu erfassen ohne immer den vollen Namen ausschreiben zu müssen. |
|
|
|
|
|
|
|
Feldname |
letzte Eingabe: TELEFONNR |
|
|
Feldname |
letzte Eingabe: TELEFONNR.ALT |
|
Die Felder einer Indexdatei werden in der Programmiersprache des EBUS-GENERATOR-C mit |
||
|
<DATEINAME>.<FELDNAME> |
||
|
angesprochen. Wenn also die Datei im obigen Beispiel ADRESSEN heißt, so heißen die oben verwendeten Felder: |
||
|
ADRESSEN.TELEFONNR |
||
Typ |
<A> |
alphanumerisch (wird automatisch belegt, wenn der Feldname mit <$> endet) |
|
|
<N> |
numerisch |
|
|
<P> |
numerisch gepackt |
|
|
<D> |
Datum |
|
Feldlänge |
Feldlänge |
||
|
Typ |
Feldlänge |
|
|
<A> |
1
bis 999 Zeichen |
|
NKS |
Nachkommastellen |
||
|
Die Nachkommastellen sind nur bei numerischen Feldern (Typ <N> oder <P>) von Bedeutung und werden sonst automatisch mit 0 belegt. |
||
Bemerkung |
Kommentar von maximal 35 Zeichen, der nur zur Dokumentation dient und für die Programmgenerierung und Datenspeicherung ohne Bedeutung ist. |
||
|
Ist die Datei vom Dateityp <D> (DBASE), werden Memofelder durch <MEMO> und Logic-Felder durch <LOGIC> am Beginn der Bemerkung gekennzeichnet. Dabei sind die weiteren Regeln für Memo- und logische Felder unter Abschnitt a) zu beachten. Analoges gilt für Dateityp <C> (s.o.). |
c) Erfassen der Schlüssel
Um in die Schlüssel-Verwaltung zu
gelangen, muß sich der Cursor in der Kopfzeile der Datei-Verwaltung befinden,
z.B. im Feld "Datei-Name". Aus der Feldbeschreibung gelangt man
dorthin durch die Taste ESC. Danach kann die Schlüssel-Verwaltung mit der Taste
<F6> angesprungen werden.
Jede Indexdatei muß einen Haupt-Schlüssel (Primär-Key) besitzen. Daneben können optional bis zu 20 Neben-Schlüssel (Sekundär-Keys) definiert werden.
Jeder Schlüssel kann aus mehreren Einzelfeldern (maximal neun) zusammengesetzt sein. Dabei darf die Länge des Schlüssels, das ist die Summe aller zugehörigen Feldlängen, 100 Bytes nicht überschreiten. Die Reihenfolge der Neben-Schlüssel ist für die Programm-Generierung ohne Bedeutung.
Mit <F2> werden alle Feldnamen in einem Fenster aufgelistet. Mit <F3> und <F4> bzw. <PGDN> und <PGUP> kann innerhalb der bereits erfaßten Schlüssel geblättert werden. Mit <F5> können vorhandene Neben-Schlüssel gelöscht werden.
Enthält der Schlüssel alphanumerische Felder, muß die Frage, ob bei der Schlüsselauswertung Groß- und Kleinschreibung berücksichtigt werden soll, mit <J> oder <N> beantwortet werden. Wird <J> eingegeben, so wird im Schlüssel zwischen Groß- und Kleinbuchstaben unterschieden: In der Sortierreihenfolge erscheinen alle Großbuchstaben vor den Kleinbuchstaben. Bei Eingabe von <N> ist Groß- oder Kleinschreibung eines Buchstabens für die Sortierreihenfolge unerheblich.
Einfügen Schlüssel
Zusätzliche
Schlüssel können nur nach dem letzten Schlüssel angefügt werden.
Auswirkung von
Änderungen auf bereits existierende EBUS-Indexdateien
Wurde die Datensatzlänge oder die Anzahl der Schlüssel oder die Zusammensetzung der Schlüssel einer bereits existierenden EBUS-Indexdatei geändert, wird beim Start eines Programms, das mit der geänderten Dateibeschreibung generiert wurde, abgefragt, ob die alte Indexdatei reorganisiert werden soll. Falls ja, werden die vorhandenen Datensätze durch Auffüllen mit Leerzeichen (Blanks) bzw. durch Abschneiden der überzähligen Zeichen auf die neue Datensatzlänge gebracht. Der Inhalt der Datensätze wird nicht verändert. Alle Schlüssel werden neu aufgebaut. Deshalb können Schlüssel beliebig geändert werden.
|
|
|
Achtung: Dateifelder können am Ende eines Datensatzes angefügt oder gelöscht werden, ohne daß der alte Datei-Inhalt zerstört wird. Die Reihenfolge der Felder in einem Datensatz ist für den Programmlauf unerheblich, deshalb sollten zusätzliche Felder immer am Ende angefügt werden. Werden dagegen Längen-Änderungen von Dateifeldern in der Mitte des Datensatzes vorgenommen, werden die alten Datensätze unbrauchbar, da sich die Position der nachfolgenden Felder im Datensatz verschiebt. In diesem Fall muß ein Hilfsprogramm geschrieben werden, in dem die Daten Feld für Feld einer Indexdatei mit neuem Namen zugewiesen werden. |
|
|
Falsch:
Alte
Indexdatei geänderte
Indexdatei ADRESSEN |
Länge Feld Inhalt Länge Feld Inhalt |
Richtig:
/* Macro zur Umwandlung der Indexdatei ADRESSEN in die Indexdatei ADRNEU |
INITIALIZE
ADRESSEN |
WHILE
SATZ_GELESEN |
Neue Indexdatei ADRNEU |
Länge Feld Inhalt |
Löschen Datei-Beschreibung
Mit <F5> kann die aktuelle Datei-Beschreibung gelöscht werden.
|
|
|
Achtung: Beim Löschen einer Datei-Beschreibung wird die Beschreibung der Indexdatei gelöscht, nicht etwa bereits vorhandene Daten in der Indexdatei, die mit einem früher generierten Programm erzeugt wurden. Die Indexdateien selbst müssen mit Betriebssystem-Kommandos (MS-DOS: del <dateiname>.*, UNIX: rm <dateiname>.*) gelöscht werden. |
|
|