Die Datenbank-Definitionsdatei (.db)
Mit Acc-Cobol können AISAM-Dateien auch als Tabellen in einer Datenbank
hinterlegt werden.
Damit eine Verbindung zwischen Acc-Cobol-Programm und Datenbank hergestellt werden
kann, muß eine Beschreibung der Cobol-Felder und ihren Entsprechungen in der Daten
bank hinterlegt werden.
Diese Beschreibungen müssen die Endung .db besitzen.
Im Cobol-Programm muß keine Änderung vorgenommen werden.
Die Tabellen können in der Datenbank mit dem Utility odefisdb angelegt werden.
Die Tabellenbeschreibung (Extention: .db)
DB-Dateien sind reine Textdateien und können mit jedem normalen Editor erstellt werden.
Aufbau einer Definitions-Datei:
Name der Tabelle
Table NAME
Es wird der Name der Tabelle in der Datenbank angegeben, für die diese Beschreibung erstellt
wird.
Feldbeschreibung
Es folgen in der Reihenfolge der Cobol-Record-Beschreibung die einzelnen
Felder und ihre Entsprechungen in der Datenbasis.
Hierbei muß bedacht werden, daß eine Unterdefinierung in der Datenbasis nicht
möglich ist.
Deshalb müssen in der DB-Beschreibung immer nur die
wesentlichen Elemente beschrieben werden, so daß sich
die Über- bzw. Unterdefinitionen (falls vorhanden) von
selbst ergeben.
Beispiel:
im Cobol-Record:
02 ADRESSE PIC X(96).
05 NAME PIC X(30).
05 STRASSE PIC X(30).
05 PLZ PIC X(6).
05 ORT PIC X(30).
Das Feld ADRESSE ergibt sich aus der Beschreibung der Unterdefinitionen.
02 BETRAG PIC 9(6)V99.
05 VORKOMMA PIC 9(6).
05 NACHKOMMA PIC 9(2).
Die Felder VORKOMMA und NACHKOMMA ergeben sich aus dem Feld BETRAG.
Angabe des Keytyps in der 1. Spalte
Zulässig sind:
M für Masterkey
A für Alternate Key
D für Duplicate Key
Angabe des Element-Namens in der Datenbasis
Die Namen sind frei wählbar und müssen mit den Namen im Cobol-Programm nicht
übereinstimmen. Sollte ein Feld im Cobol-Programm nicht verwendet werden,
darf der Name FILLER oder filler verwendet werden.
Dieser Name wird auch in der Datenbank nicht hinterlegt.
Angabe des Coboltyps
Hier ist der Picturetyp des Feldes zu hinterlegen wobei nur PIC X oder PIC 9 zulässig ist.
Bei PIC 9 Feldern kann noch ein V für das Komma angeben werden.
Numerische Felder werden in der Datenbank je nach Größe als SMALLINTEGER, INTEGER oder DECIMAL
automatisch konvertiert.
Angabe der Position im Record (optional)
Für Redefinitionen kann auch die relative Startposition (mit 0 beginnend) angegeben werden.
Die Angabe der Position ist für den defisdb nicht relevant. Da es vorkommen kann,
das KEY's über mehrere Felder definiert sind, kann für diese eine Redefinition vorgenommen werden.
Es ist jedoch zu beachten, daß redefinierte Felder in der Datenbank ein eigenes Element belegen.
Kommentar für die Datenbank
Jeder folgende mit ' oder " beginnende Text wird in der Datenbank als Kommentar für das Feld abgespeichert.
Kommentarzeilen in der db-Datei
Beginnt eine Zeile mit # in der 1. Spalte, wird der gesamte Zeileninhalt ignoriert.
Beispiel einer gültigen Tabellendefinition geb.db
# Keytype Name Coboltyp Start-Pos. Beschreibung
Table gebiet
M geb_nummer 99 'Gebietsnummer
geb_umsatz 9(6)V99 'Umsatz laufender Monat
D geb_typ 9(5)
geb_text X(50)
Das Anlegen der Tabelle in der Datenbank erfolgt mit:
odefisdb gebiet.db
Sollte die Tabelle schon in der Datenbank existieren, wird mit
odefisdb -d gebiet.db
die alte Tabelle mit allen Rows gelöscht und eine neue Tabelle angelegt.
|