Exits für EGL-Zugriff auf DB2 schreiben

Sie können Exit-Code schreiben, der ausgeführt wird, wenn die Anwendung Daten in eine DB2-Datenbank schreibt oder Daten aus dieser Datenbank abruft.

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.

Sechs Exits stehen zur Verfügung:

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.

Der Exit-Code wird zur Verwendung mit Datenzugriffscode geschrieben, der für COBOL oder Java generiert wird:

Die bereitgestellten Exits sind Vorlagen, die keine Auswirkungen haben.

Benutzerexit durch Einfügen eines sqlDataCode-Werts aktivieren

Zur Laufzeit wird Exit-Code nur für eine Hostvariable aufgerufen, die mit einem bestimmten Wert für die Eigenschaft sqlDataCode deklariert ist. Im Folgenden ist ein Beispiel für einen Datensatzabschnitt aufgeführt, bei dem die Eigenschaft in mehreren Feldern enthalten ist:
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
Felder außerhalb eines SQL-Datensatzes können ebenfalls als Hostvariablen verwendet werden (siehe Beispiel):
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.


Feedback