Hallo,
wir schreiben häufig User Defined Functions in SQL, um damit Serviceprogramme aufzurufen. Manchmal erwarten die Serviceprogramme ein Datumsfeld als Input-Parameter. Datumsfelder sind bei uns grundsätzlich im *EUR Format definiert.
Ein Datumsfeld in SQL scheint aber nicht gleich einem Datumsfeld in RPG zu sein. Deshalb behelfen wir uns immer damit, ein zusätzliches RPG-Serviceprogramm zu erstellen, das als Adapter zwischen die SQL-Funktion und das eigentliche RPG-Serviceprogramm eingefügt wird. Das Adapterprogramm empfängt das Datum von SQL dann als Varchar(10), wandelt es in ein echtes RPG-Date um und übergibt es an das eigentliche Serviceprogramm.
Das ist natürlich sehr umständlich.
Hier mal ein Beispiel für eine SQL-Funktion, die ein Datum (i#Stand) als Varchar übernimmt.
Hat vielleicht jemand eine bessere Idee?Code:create function EDPGMLIB/BVS9VS_ermIndexfaktor( i#Code varchar(3), i#_vs_vbnr decimal(15, 0), i#_vs_nach decimal(9, 0), i#stand varchar(10)) returns decimal(15, 7) language RPGLE specific EDPGMLIB/BVS9VS_ermIndexfaktor deterministic reads sql data called on null input disallow parallel external name 'EDPGMLIB/BVS9VSF15(BVS9VS_ERMINDEXFAKTOR)' parameter style general;
Dieter
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks