loisl
08-11-13, 13:21
Hallo,
ich habe ein Problem mit dem Aufrufen eines Seviceprogramms aus einer SQL-Funkrion herraus. Es wird zwar aufgerufen, aber es übernimmt die Werte nicht in das Serviceprogramm. Der Returnwert wird zurückgegeben.
Die Funktion schaut so aus:
Create Function arbeiten(Wert Char(7), Richtung Char(1) )
Returns Char(7)
Language RPGLE
Specific arbeiten
Not Deterministic
Returns Null on Null input
No external Action
Not Fenced
External Name 'ARBLIB/ARBSERVICE(ARBEITEN)';
Das Modul Arbeiten im Serviceprogramm ARBSERVICE übernimmt die Werte so:
D Arbeiten....PR.....7
D Wert...............7
D Richtung ..........1
P arbeiten....b......... export
d arbeiten... pi.....7
d wert ..............7
d richtung ..........1
d arbeit_out ........7
//free
exec sql tu irgend was;
arbeit_out = wert;
return arbeit_out;
/end-free
P .........E
Das Serviceprogramm macht was es soll. Die SQL-Funktion ruft auch das Serviceprogramm auf. Aber die Daten werden nicht übernommen. Nur zurückgegeben.
Aufgerufen wird es dann über STRSQL und:
select arbeiten(a.Dateiwert, '1'), a.Dateiwert from Arbeitsdate a
Schon mal danke für die Hilfe.
Loisl
ich habe ein Problem mit dem Aufrufen eines Seviceprogramms aus einer SQL-Funkrion herraus. Es wird zwar aufgerufen, aber es übernimmt die Werte nicht in das Serviceprogramm. Der Returnwert wird zurückgegeben.
Die Funktion schaut so aus:
Create Function arbeiten(Wert Char(7), Richtung Char(1) )
Returns Char(7)
Language RPGLE
Specific arbeiten
Not Deterministic
Returns Null on Null input
No external Action
Not Fenced
External Name 'ARBLIB/ARBSERVICE(ARBEITEN)';
Das Modul Arbeiten im Serviceprogramm ARBSERVICE übernimmt die Werte so:
D Arbeiten....PR.....7
D Wert...............7
D Richtung ..........1
P arbeiten....b......... export
d arbeiten... pi.....7
d wert ..............7
d richtung ..........1
d arbeit_out ........7
//free
exec sql tu irgend was;
arbeit_out = wert;
return arbeit_out;
/end-free
P .........E
Das Serviceprogramm macht was es soll. Die SQL-Funktion ruft auch das Serviceprogramm auf. Aber die Daten werden nicht übernommen. Nur zurückgegeben.
Aufgerufen wird es dann über STRSQL und:
select arbeiten(a.Dateiwert, '1'), a.Dateiwert from Arbeitsdate a
Schon mal danke für die Hilfe.
Loisl