Anmelden

View Full Version : DATFMT beim Kompilieren



meini
13-11-12, 20:11
Hallo,

ich würde gern bei der Umwandlung von RPG automatisch vorgeben, dass als Datumsformat *ISO verwendet werden soll, um eine potentielle Fehlerquelle zu vermeiden.

Der einzige Weg scheint das codieren von HDatFmt(*ISO) oder das Einbinden von selbigem über /copy.

In der Dokumentation von CRTRPGMOD findet sich ja leider kein entsprechender Parameter. :(

Gibt es da vielleicht noch einen anderen Weg (ohne den Systemwert für das Datumsformat zu ändern)?

Pikachu
13-11-12, 20:59
Ja gibt es, mittels Datenbereich (http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c092508419.htm).

B.Hauser
14-11-12, 06:29
Hallo,

ich würde gern bei der Umwandlung von RPG automatisch vorgeben, dass als Datumsformat *ISO verwendet werden soll, um eine potentielle Fehlerquelle zu vermeiden.

Der einzige Weg scheint das codieren von HDatFmt(*ISO) oder das Einbinden von selbigem über /copy.

In der Dokumentation von CRTRPGMOD findet sich ja leider kein entsprechender Parameter. :(

Gibt es da vielleicht noch einen anderen Weg (ohne den Systemwert für das Datumsformat zu ändern)?

Sofern weder in den D- noch in den H-Bestimmungen das Datums-Format gesetzt wurde (Schlüssel-Wort DATFMT) wird automatisch *ISO verwendet.

Wenn Du allerdings Programme mit embedded SQL verwendest, wird für die Host-Variablen (bzw. die vom Precompiler erstellten zusätzlichen Variablen) die Formatangabe (unabhängig von D- oder H-Bestimmungen) nicht berücksichtigt. Das Datums-Format, das für diese Variablen verwendet wird, wird durch die Otpion DATFMT im Compile Command (CRTSQLRPGI) oder über das SQL-Statement SET OPTION gesetzt.

Was spricht gegen eine Einbindung über Copy-Strecke?
Das Schlüssel-Wort kann durch Compile-Anweisungen bedingt werden, so dass es im Bedarfsfall abgeklemmt und anderweitig gesetzt werden kann.

Wie bereits Pikachu erwähnt können die H-Bestimmungen auch in einem Datenbereich hinterlegt werden, d.h. entweder muss ein Datenbereich mit dem Namen RPGLEHSPEC (mit den H-Bestimmungen) zur Compilezeit in der Bibliotheksliste vorhanden sein oder die H-Bestimmungen müssen in dem Datenbereich DFTLEHSPEC in der Bibliothek QRPGLE hinterlegt werden.

Birgitta

meini
14-11-12, 14:59
Vielen Dank für die hilfreichen Antworten. Jetzt weiß ich endlich, warum bei uns nicht standardmäßig mit *ISO gewandelt wird, sondern mit *EUR. Es existiert bereits ein entsprechender Datenbereich.

Da ich die bestehenden Einstellungen nicht überschreiben will,werde ich es generell in den D-Specs zu definieren. Das ist dann wenigstens unabhängig von globalen Einstellungen, die in jedem Modul überschrieben werden könnten.