Exits für EGL-Zugriff auf DB2 schreiben
Der Zweck eines Exits besteht in der Formatierung oder Änderung der CHAR-Werte, die den Spalten für Datum (DATE), Zeit (TIME) und Zeitmarke (TIMESTAMP) entsprechen. Die Exits sind besonders nützlich, wenn Sie Ihr Vorhaben nicht über einen anderen Mechanismus wie JBDC-Treibereigenschaften oder DB2-Vorcompileroptionen realisieren können.
- Eingabe und Ausgabe für Datumsspalten, die einem EGL-Feld des Typs CHAR(10) entsprechen.
- Eingabe und Ausgabe für Zeitspalten, die einem EGL-Feld des Typs CHAR(8) entsprechen.
- Eingabe und Ausgabe für Zeitmarkenspalten, die einem EGL-Feld des Typs CHAR(26) entsprechen.
Bei der Eingabe in die Datenbank bleibt der Inhalt der Hostvariablen unverändert; nur der an die Datenbankspalte gesendete Wert wird geändert. Bei der Ausgabe wird der Inhalt der Hostvariablen geändert, der Spaltenwert bleibt jedoch unverändert.
- Bei Generierung des Datenzugriffscodes für COBOL wird jeder Exit in ein eigenes Lademodul gestellt. Einzelheiten hierzu finden Sie in 'Exits für DB2- und COBOL-Generierung schreiben'.
- Bei Generierung des Datenzugriffscodes für Java werden die Exits in eine einzelne Java-Klasse geschrieben. Einzelheiten hierzu finden Sie in 'Exits für DB2- und Java-Generierung schreiben'.
Die bereitgestellten Exits sind Vorlagen, die keine Auswirkungen haben.
Benutzerexit durch Einfügen eines sqlDataCode-Werts aktivieren
Record TstabN type SQLRecord
{tableNames = [["ME.MYTABLE"]], fieldsMatchColumns = yes}
10 TS2 char(26) {column="TS2", isSqlNullable=yes, sqlDataCode=392};
10 TS1 char(26) {column="TS1", isSqlNullable=yes, sqlDataCode=392};
10 DATE1 char(10) {column="DATE1", isSqlNullable=yes, sqlDataCode=384};
10 TIME1 char(8) {column="TIME1", isSqlNullable=yes, sqlDataCode=388};
end
dataitem tstype char(26) {sqlDataCode=392} end
dataitem datetype char(10) {sqlDataCode=384} end
dataitem timetype char(8) {sqlDataCode=388} end
Die folgenden sqlDataCode-Werte veranlassen einen Exitaufruf:
| sqlDataCode-Werte | Nullwert möglich | SQL-Spaltentyp |
|---|---|---|
| 384 385 |
Ja Nein |
DATE |
| 388 389 |
Ja Nein |
TIME |
| 392 393 |
Ja Nein |
TIMESTAMP |
Sie können eine Benutzervorgabe so definieren, dass bei Verwendung der EGL-SQL-Funktion RETRIEVE die sqlDataCode-Werte automatisch in einen für Sie erstellten Datensatzabschnitt eingefügt werden werden. Weitere Informationen finden Sie in 'Benutzervorgaben für SQL-Abrufe definieren'.
Der Exit für ein bestimmtes Feld wird während der Datenbankeingabe nicht aufgerufen, wenn das Feld null ist. Dasselbe gilt für die Datenbankausgabe, wenn die Spalte null ist.