Dieses Thema stellt eine Ergänzung zu 'Exits für EGL-Zugriff auf DB2 schreiben' dar und bezieht sich auf die Java-Generierung.
Der standardmäßig ausgeführte Exit-Code befindet sich in der Datei 'fda7.jar' in 'com.ibm.etools.egl.java.runtime_version', wobei version die Produktversion angibt. Der Klassenname lautet EglDatabaseExits.
In der folgenden Tabelle sind die Methoden in dieser Klasse aufgelistet.
| Methodenname | Zweck | Typ für Ein- und Ausgabe |
|---|---|---|
| dateExitToDB | Überprüfen Sie vor der Datenbankeingabe den Wert, den eine Hostvariable des Typs DATE der Datenbank zuweist. | String |
| dateExitFromDB | Überprüfen Sie nach der Datenbankausgabe den Wert, der in eine Hostvariable des Typs DATE eingefügt wird. | String |
| timeExitToDB | Überprüfen Sie vor der Datenbankeingabe den Wert, den eine Hostvariable des Typs TIME der Datenbank zuweist. | String |
| timeExitFromDB | Überprüfen Sie nach der Datenbankausgabe den Wert, der in eine Hostvariable des Typs TIME eingefügt wird. | String |
| timestampExitToDB | Überprüfen Sie vor der Datenbankeingabe den Wert, den eine Hostvariable des Typs TIMESTAMP der Datenbank zuweist. | String |
| timestampExitFromDB | Überprüfen Sie nach der Datenbankausgabe den Wert, der in eine Hostvariable des Typs TIMESTAMP eingefügt wird. | String |
package egl.io.sql;
public class EglDatabaseExits
{
/**
* Does custom formatting of a string used as input to a DATE column.
*
* @param input - the value from EGL.
* @return a string in the format which will then be formatted
by StrLib.defaultDateFormat.
*/
public static String dateExitToDB( String input ) { return input; }
/**
* Does custom formatting of a string value fetched from a DATE column.
*
* @param input - the value from the DATE column, formatted
according to StrLib.defaultDateFormat.
* @return a string, will be assigned to an EGL variable.
*/
public static String dateExitFromDB( String output ) { return output; }
/**
* Does custom formatting of a string used as input to a TIME column.
*
* @param input - the value from EGL.
* @return a string in the format that will then be formatted
by StrLib.defaultTimeFormat.
*/
public static String timeExitToDB( String input ) { return input; }
/**
* Does custom formatting of a string value fetched from a TIME column.
*
* @param input - the value from the TIME column, formatted
according to StrLib.defaultTimeFormat.
* @return a string which will be assigned to an EGL variable.
*/
public static String timeExitFromDB( String output ) { return output; }
/**
* Does custom formatting of a string used as input to a TIMESTAMP column.
*
* @param input - the value from EGL.
* @return a string in the format which will then be formatted
by StrLib.defaultTimestampFormat.
*/
public static String timestampExitToDB( String input ) { return input; }
/**
* Does custom formatting of a string value fetched from a TIMESTAMP column.
*
* @param input - the value from the TIMESTAMP column, formatted
according to StrLib.defaultTimestampFormat.
* @return a string, will be assigned to an EGL variable.
*/
public static String timestampExitFromDB( String output ) { return output; }
}
Wie oben gezeigt haben die für DATE, TIME und TIMESTAMP definierten Masken Auswirkungen auf die Daten, die an diese Exits gesendet oder von diesen empfangen wurden. Sie können diese Masken im Code definieren, indem Sie die Variablen StrLib.defaultDateFormat, StrLib.defaultTimeFormat und StrLib.defaultTimeStampFormat festlegen. Diese Variablen können Standardwerte aus den Java-Laufzeiteigenschaften empfangen. Weitere Informationen finden Sie in den Referenzthemen, die am Ende dieses Themas aufgeführt sind.
get myrec with #sql{
SELECT COL1 FROM TBL WHERE :dateChar1 = '2010-04-01' }
into dateChar2;
Für das Debugging oder die Ausführung von generiertem Java-Code, der eine angepasste Klasse 'EglDatabaseExits' verwendet, müssen Sie die Klasse so in den Klassenpfad einfügen, dass sie der Datei 'fda7.jar' (JAR-Datei der EGL-Java-Laufzeit) vorausgeht. Im EGL-Debugger können Sie die Vorgabe für den Klassenpfad oder die Eigenschaft für den Java-Buildpfad des Projekts verwenden.
Im Allgemeinen ist die Verwendung der Eigenschaft für den Java-Buildpfad des Projekts die einfachste Möglichkeit, um den Klassenpfad eines generierten Java-Batchprogramms in Eclipse festzulegen. Außerhalb von Eclipse muss die Umgebungsvariable CLASSPATH oder das Befehlszeilenargument -classpath verwendet werden.
Beim Kompilieren von generiertem Code wird im Klassenpfad keine angepasste Klasse 'EglDatabaseExits' benötigt.
Für das Debugging oder die Ausführung von generiertem Java-Code auf dem Apache Tomcat-Server oder in WebSphere Application Server muss die angepasste Klasse in das Webprojekt für die Implementierung (im Ordner 'WEB-INF/classes') eingefügt werden. Beide Server durchsuchen diesen Ordner vor dem Ordner 'WEB-INF/lib', in dem die Datei 'fda7.jar' abgelegt wird.