PDA

View Full Version : Rückgabe Dezimalwert in UDF



Peder
08-05-07, 05:16
Hallo Zusammen

Ich habe eine UDF erstellt, die mir den aktuellen VK eines Artikels zurückgeben soll. Dies ist keine reine SQL-UDF, sondern es wird eine RPGLE-Funktion genutzt, die den VK exportiert.

Nur leider kommt der Wert nie an. Der Export-Wert in der RPG-Funktion ist mit 9P 4 declariert, in der UDF ist der Return-Wert mit der Anweisung

RETURNS dec(9, 4) CAST FROM Dec(9, 4)

declariert. Ich habe auch schon alle möglichen anderen Konstellation mit dec und numeric versucht.

Ich bekomme immer in der Ausführung der UDF den Fehler, dass der Wert der Funktion mit ++++++++++++ angezeigt wird. Im Joblog ist kein Fehler festgehalten, und wenn ich das RPG-SRVPGM debugge, wird dort auch ein VK ermittelt und übergeben.

Nur wenn ich in beiden Funktionen die Exporte als CHAR definiere, bekomme ich den Wert angezeigt, mit dem ich dann aber so nichts machen kann.

Vielen Dank für eure Hilfe.

zannaleer
08-05-07, 07:42
Würde es vielleicht schon helfen, den return-Wert auf 9s4 zu ändern? Ich habe mal ein wenig mit VARPG experimentiert und hatte dort auch immer Probleme mit gepackten Feldern. Bei gezonten Feldern funktionierte es immer besser.

Gruß
Alexander

Peder
08-05-07, 07:58
Hallo Alexander

danke für deinen schnellen Tip. Ich war mir eigentlich sicher, dass ich das vorher schon versucht hatte. Aber wie auch immer. Mit 9 S 4 und einen CAST auf NUMERIC(9, 4) geht es jetzt.

Verstehen tue ich zwar immer noch nicht, warum das mit 9P 4 und Decimal nicht funzt, aber egal.

Merci
Peder

Fuerchau
08-05-07, 08:38
Dazu müsste man nun mal die genaue SQL-Deklaration und die RPG-Deklaration kennen.
Mit gepackten Werten muss es genauso gehen.