PDA

View Full Version : Integer 9 in PF was brauche ich im RPG um die Variable mit FETCH zu bekommen.



harkne
02-11-20, 13:47
Hall zusammen,

ich bekomme es nicht hin.
Was muss ich in meiner Datenstrutkur für eine Feldart und Länge im RPG angeben wenn eine Datei eine Integer 9 Variable hat ?

Viele Grüße Harkne

B.Hauser
02-11-20, 13:52
Integer 9 gibt es nicht! Vermutlich schaust Du Dir die Daten mit DSPFFD (oder einem anderen Tool an und siehst B(9) o.ä.
Eine echte Integer-Definition in SQL enstspricht INT(10) in RPG

Birgitta

harkne
02-11-20, 14:04
Wenn ich auf der AS400 SELECT und F4 mache dann wird Integer 9 angezeigt

holgerscherer
02-11-20, 14:09
Wenn ich auf der AS400 SELECT und F4 mache dann wird Integer 9 angezeigt

Das muss schon ein älteres release sein - gemeint ist wohl eher numeric 9

harkne
02-11-20, 14:24
Wie dem auch sei, der Fehler lag mal wieder bei dem vor dem Bildschirm. Im Joblog habe ich gelesen dass die Prozedur 26 Felder zurück gibt ich aber in der Datenstruktur 27 Felder empfange. Ich hab einfach die Felder aus der Datei verwendet, allerdings wird ein Feld (schnauf) aus der Prozedur nicht zurück gegeben. Da dies auch noch ein Feld aus der Mitte war hat er irgendwann versucht Character Werte in die numerischen Felder zu schieben und deshalb hatte ich den Fehler.

Ich habe jetzt in der Datenstruktur 10i 0 angegeben, so scheints zu funktionieren. Hätte ich auch einfach 10 0 angeben können?

camouflage
02-11-20, 14:35
Das muss schon ein älteres release sein - gemeint ist wohl eher numeric 9

Nicht nur älteres Release auch älteres RPG ;-)

Fuerchau
02-11-20, 14:50
Das "I" steht für Integer mit den Ausprägungen 3/5/10/20.
Lässt du das I weg, ist das Feld Zoned, also 1 Ziffer 1 Byte.

Und wenn man Bin 9 hat, ist das ein abgespecktes int(10), da per "B 1 4" ein internes Packed 9, 0 angelegt wird, da ein int(10) nicht 9.999.999.999 aufnehmen kann sondern nur 2.147.483.647.
Die Genauigkeit liegt also nur bei 9 Stellen, die 10. Stelle geht nur von 0-2.

In COBOL ist das auch nicht unbekannt, da man mit PIC 9(9) COMP-4 genau auch nur 9 Stellen ansprechen kann. Es gibt dann noch die Umwandlungsoption NOTRUNC mit der man dann wieder den Maximalwert verwenden kann auch wenn nur 9 signifikante Ziffern definiert sind.