Die Schema-DDL übersetzen Sie mit dem DDL-Compiler; Sie müssen die Schema-DDL dem DDL-Compiler als Eingabedatei zuweisen.
Nach erfolgreichem Übersetzungslauf speichert der DDL-Compiler die Schema-Beschreibung im DBCOM (Database Compiler Realm).
Mit Hilfe dieser Information baut das nachfolgende Dienstprogramm BGSIA die SIA auf und speichert sie im DBDIR (Database Directory).
Wenn Sie eine SSL-Beschreibung erstellt haben, ist die übersetzte Schema-Beschreibung im DBCOM die Grundlage für die Weiterverarbeitung durch den SSL-Compiler und das Dienstprogramm BGSIA.
Haben Sie keine SSL-Beschreibung erstellt, dann ist die Schema-Beschreibung im DB-COM abgeschlossen.
Der DDL-Compiler erstellt auch das COBOL Subschema Directory (COSSD). Das COSSD speichert Informationen für den COBOL-Compiler, die beim Generieren der DB-Anwenderprogramme erforderlich sind. Erst beim Übersetzungslauf der Subschema-DDL wird der eigentliche Inhalt des COSSD generiert.
Der DDL-Compiler erweitert bei Bedarf automatisch DBDIR und DBCOM der bearbeiteten Datenbank bzw. die DBTTs der Satzarten in DBDIR und DBCOM. Näheres hierzu siehe Handbuch „Datenbankbetrieb“, Automatische Realm-Erweiterung durch Dienstprogramme).
Der DDL-Compiler berücksichtigt beim Start ggf. eine zugewiesene UDS/SQL-Pubset-Deklaration (siehe Handbuch „Datenbankbetrieb“, Pubset-Deklarations-Jobvariable). Eine fehlerhafte Zuweisung führt zum Programmabbruch.
Während des Ablaufs benutzt der DDL-Compiler den linked-in DBH.
Bild 9: Systemumgebung bei der Schema-DDL-Übersetzung
Anweisungen für die Übersetzung
Mit dem DDL-Compiler übersetzen Sie nicht nur die Schema-DDL, sondern auch die Subschema-DDL; die SSL dagegen übersetzt der SSL-Compiler.
In der folgenden Tabelle finden Sie die Anweisungen für die Übersetzung der
Schema-DDL gekennzeichnet mit DDL
Subschema-DDL gekennzeichnet mit SDDL
SSL gekennzeichnet mit SSL
Anweisung | Compiler | Standard- | Bedeutung |
| DDL | NO | wahlweise; |
| DDL | YES | wahlweise; |
| DDL | - | nicht erforderlich, wenn die Eingabe im Dialog erfolgt oder die Eingabedatei SYSDTA zugewiesen ist - in diesem Fall ist zu beachten, dass zunächst alle Anweisungen (mindestens END) und anschließend die eigentliche Source eingegeben wird. weist dem Compiler die Datei zu, die die Schema-DDL/Subschema-DDL/SSL enthält. bib: Name der Programmbibliothek SYSDTA wird auf die Eingabedatei umgeschaltet. Nach Beendigung des Compiler-Laufs wird SYSDTA wieder auf SYSCMD zurückgesetzt. Die Anweisungen „SOURCE IS“ und „DELETE SCHEMA“ bzw. „DELETE SUBSCHEMA“ dürfen Sie nicht innerhalb desselben DDL-Compiler-Laufs verwenden. |
| SDDL | - | wahlweise; Die Anweisung „SUBSCHEMA FORM IS OLD“ bewirkt, dass das transformierte Subschema und die Prüftabelle (CHECK-TABLE) in einem internen Format in das COSSD eingetragen wird, das bis einschließlich UDS/SQL V1.2 das Standardformat war („alte“ Form; alle Referenznummern sind 1 byte lang). Ein Subschema kann nur dann in eine Form gemäß UDS/SQL V1.2 übersetzt werden, wenn die folgenden Bedingungen erfüllt sind:
Andernfalls beendet sich der DDL-Compiler mit Syntaxfehler und das Subschema wird nicht in DBCOM und COSSD eingetragen. |
| SDDL | NO | wahlweise; In der Struktur IMPLICITLY-DEFINED-DATA-NAMES wird ein Feld REC-REF PIC S9(4) BINARY definiert. Für jede Satzreferenz wird diesem Feld ein Bedingungsname (Stufennummer 88) zugeordnet, der nach folgendem Muster aufgebaut ist: NO Diese Anweisung ist nur für das Generieren von Subschemas wirksam. Beim Generieren von Schemas wird die Anweisung ignoriert. |
| DDL | - | wahlweise; schemaname: Name des Schemas Die Anweisungen „SOURCE IS“ und „DELETE SCHEMA“ dürfen Sie nicht innerhalb desselben DDL-Compiler-Laufs verwenden. |
| SDDL | - | wahlweise; ONLY Ist der Parameter angegeben, wird eine SOURCE-Anweisung ignoriert. subschemaname: Name des Subschemas beide Namen müssen in Hochkommata eingeschlossen werden |
| DDL | NO | wahlweise; |
| DDL | - | nachträglich das COSSD einrichten; |
| SDDL | - | gilt nur nach einer Umstrukturierung mit BALTER; |
| SDDL | NO | nur sinnvoll zusammen mit COMPARE; |
| DDL | DOUBLE | wahlweise; |
| DDL | - | generell erforderlich; |
Tabelle 12: Anweisungen zum Ubersetzen der Schema-DDL/Subschema-DDL/SSL
Kommandofolge zum Übersetzen der Schema-DDL
Die hier beschriebene Kommandofolge geht davon aus, dass UDS/SQL mit IMON installiert wurde (siehe Abschnitt „START-Kommandos der UDS/SQL-Programme").
| |
01 | siehe „COSSD einrichten“ ("Compilerdatenbank einrichten") |
03 | Versionsabhängiges Modul des linked-in DBH der entsprechenden Version wird nachgeladen (siehe Handbuch „Anwendungen programmieren“, Abschnitt „UDS/SQL-TIAM-Anwenderprogramme binden, laden und starten“). |
04 | Die DB-Status-Dateien benötigt der DBH. Falls der Datenbankname mehr als 8 Zeichen enthält, dürfen in diesen CREATE-FILE-Anweisungen für dbname nur die ersten 8 Zeichen des Datenbanknamens angegeben werden. |
05 | Das UDS/SQL-Dienstprogramm kann auch mit dem Aliasnamen DDL gestartet werden. |
06 | Die einzelnen Anweisungen können, durch Kommas oder Leerzeichen getrennt, in einer Zeile eingegeben werden. |
Beispiel
/CREATE-FILE FILE-NAME=REISEN.COSSD,SUPPORT=PUBLIC-DISK(SPACE=RELATIVE - / (PRIMARY-ALLOCATION=30,SECONDARY-ALLOCATION=10)) /CREATE-FILE FILE-NAME=REISEN.DBSTAT,SUPPORT=PUBLIC-DISK(SPACE=RELATIVE - / (PRIMARY-ALLOCATION=24,SECONDARY-ALLOCATION=48)) /CREATE-FILE FILE-NAME=REISEN.DBSTAT.SAVE,SUPPORT=PUBLIC-DISK(SPACE=RELATIVE - / (PRIMARY-ALLOCATION=24,SECONDARY-ALLOCATION=48)) /ADD-FILE-LINK LINK-NAME=DATABASE,FILE-NAME=REISEN.DBDIR /SELECT-PRODUCT-VERSION PRODUCT-NAME=UDS-SQL, VERSION=02.9B00 /START-UDS-DDL ***** START DDLCOMP (UDS/SQL V2.9 0000 ) 2017-06-28 11:26:06 * DDLCOMP: INPUT SYSTEMPARAMETERS SOURCE IS 'S.REISEN.DDL' END * DDLCOMP: READ SCHEMA/SUBSCHEMA % UDS0215 UDS STARTET UDS/SQL V2.9 (LINKED-IN), DATE=2017-06-28 (ILL2038,11:26:06/0YA2) % UDS0746 UDS-PUBSET-DEKLARATION (CURRENT) FOLGT (ILL1746,11:26:06/0YA2) 0YA2: UDS-PUBSET-JV: :SQL2:$XXXXXXXX.PUBSDECL.PUBS 0YA2: PUBSETS: SQL2 0YA2: DEFAULT PUBSET: SQL2 0YA2: ------------------------------------------ * DDLCOMP: START SCHEMA-PHASE * DDLCOMP: CHECK SCHEMA RULES * DDLCOMP: CHECK DATA ALLOCATION * DDLCOMP: SEMANTIC TEST * DDLCOMP: CYCLUS TESTS * DDLCOMP: ERROR DIAGNOSTIC * DDLCOMP: NO ERRORS IN SCHEMA-PHASE * DDLCOMP: CREATE FILE COSSD * DDLCOMP: NO ERRORS DETECTED % UDS0758 ANZAHL DER DML-ANWEISUNGEN UND I/O-ZAEHLER PRO DATENBANK (ILL1758,11:26:06/0YA2) 0YA2: DATABASE NAME DMLS LOG READ PHYS READ LOG WRITE PHYS WRITE 0YA2: ------------------------------------------------------------------------ 0YA2: REISEN 1394 4046 67 1760 45 % UDS0213 UDS NORMAL BEENDET MIT ************1394 DML-STATEMENTS 2017-06-28 (ILLY033,11:26:06/0YA2) ***** DIAGNOSTIC SUMMARY FOR DDL-SCHEMA REISEBUERO NO ERRORS +++++ 8 WARNINGS ***** END OF DIAGNOSTIC SUMMARY ***** NORMAL END DDLCOMP (UDS/SQL V2.9 0000 ) 2017-06-28 11:26:06