Exits für DB2- und COBOL-Generierung schreiben

Dieses Thema stellt eine Ergänzung zu 'Exits für EGL-Zugriff auf DB2 schreiben' dar und bezieht sich auf die COBOL-Generierung.

Quellcode

Um die Quelle für die bereitgestellten Exits anzuzeigen, müssen Sie die Member in der SELASAMP-PDS überprüfen, die im Lieferumfang der Rational COBOL Runtime for z/Series-Installation unter z/OS enthalten ist. Die relevanten Member sind in der folgenden Tabelle aufgelistet.

Membername Zweck Typ für Ein- und Ausgabe
ELADT2DB Überprüfen Sie vor der Datenbankeingabe den Wert, den eine Hostvariable des Typs DATE der Datenbank zuweist. Zeiger auf CHAR(10)
ELADT2PG Überprüfen Sie nach der Datenbankausgabe den Wert, der in eine Hostvariable des Typs DATE eingefügt wird. Zeiger auf CHAR(10)
ELATI2DB Überprüfen Sie vor der Datenbankeingabe den Wert, den eine Hostvariable des Typs TIME der Datenbank zuweist. Zeiger auf CHAR(8)
ELATI2PG Überprüfen Sie nach der Datenbankausgabe den Wert, der in eine Hostvariable des Typs TIME eingefügt wird. Zeiger auf CHAR(8)
ELATS2DB Überprüfen Sie vor der Datenbankeingabe den Wert, den eine Hostvariable des Typs TIMESTAMP der Datenbank zuweist. Zeiger auf CHAR(26)
ELATS2PG Überprüfen Sie nach der Datenbankausgabe den Wert, der in eine Hostvariable des Typs TIMESTAMP eingefügt wird. Zeiger auf CHAR(26)

Die Masken, die Sie für DATE, TIME und TIMESTAMP definieren, haben keine Auswirkungen auf die Daten, die Sie an diese Exits gesendet oder von diesen empfangen haben. Sie können die Masken im Code definieren, indem Sie die Funktionen StrLib.defaultDateFormat, StrLib.defaultTimeFormat und StrLib.defaultTimeStampFormat festlegen, die Standardwerte aus den Builddeskriptoroptionen desselben Namens empfangen können.

Beispiel und Logikablauf

Die folgende SQL-Anweisung verwendet zwei Zeichenfelder, die jeweils über einen sqlDataCode-Wert verfügen. Dieser Wert gibt an, dass die zugehörige Spalte vom Typ DATE ist:
get myrec with #sql{ 
   SELECT COL1 FROM TBL WHERE :dateChar1 = '2010-04-01' }
   into dateChar2;
Die Abfrage wird wie folgt erstellt:
  1. Rufen Sie den Wert aus dem Feld dateChar1 ab.
  2. Übergeben Sie diesen Wert an das Exitprogramm ELADT2DB.
  3. Verwenden Sie bei der Interaktion mit der Datenbank den vom Exitprogramm zurückgegebenen neuen Datumswert.
Gehen Sie zum Abrufen von Beispieldaten wie folgt vor:
  1. Rufen Sie den Wert COL1 aus der Datenbank ab.
  2. Übergeben Sie den Wert an das Programm ELADT2PG.
  3. Ordnen Sie den von diesem Programm zurückgegebenen Wert dem Feld dateChar2 zu.

Lademodule

Die bereitgestellten Lademodule sind Member der SELALMD-PDS, die im Lieferumfang der Rational COBOL Runtime for z/Series-Installation unter z/OS enthalten ist.

Bei der Aktivierung dieser Exits generiert der EGL-Generator in den Steuerkarten für die Linkbearbeitung für jeden erforderlichen Exit eine Anweisung INCLUDE SELALMD(exitpgm):
  • Wenn Sie die Exits nicht ändern, werden die Beispielexits verlinkt und ausgeführt. Es werden keine Änderungen an den Werten vorgenommen.
  • Wenn Sie die Exits ändern und in einen neuen Datensatz einfügen, muss der neue Datensatz im Linkbearbeitungsschritt des Build-Scripts referenziert werden. Genauer gesagt muss die Referenz zur SELALMD DD-Anweisung hinzugefügt werden, und zwar vor dem in der übergebenen JCL enthaltenen Eintrag.
  • Werden die geänderten Exits zu einem späteren Zeitpunkt erneut geändert, müssen Sie die Programme erneut generieren oder verlinken, damit die Änderungen wirksam werden.

Feedback