-
SQL Funktion ruft Serviceprogramm auf - Parameter übergabe
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
-
SQL übergibt 3 Felder wobei das 3. Feld dein Returnwert ist.
Das Ergebnis des RPG-Return wird ignoriert.
Da kann man mal sehen, welche Probleme auftreten können, wenn es keine Laufzeitprüfung der Call-Parameter gibt.
Mittels %parms() kann man die Anzahl der Parameter prüfen und darauf reagieren.
Intern ist leider jede Funktion mit Anzahl Parameter 0 - 255 definiert.
Deshalb gibts auch keine Laufzeitfehler bei falschen Aufrufen.
-
Und wie komme ich dann an meine Werte ran, die von der Funktion übergeben werden?
Bedeutet ich übegebe einen 7stelligen pseudowert? Und habe dann im zweiten und dritten mein Feld?
Das der Returnwert funktioniert habe ich übrigens so geprüft, das ich den Wert zwischen durch im Serviceprogramm fest vergeben habe.
-
Hab's mal mit meiner Definition einer Funktion verglichen und da fällt mir auf, dass Du beim CREATE FUNCTION etwas nicht angegeben hast, was ich schon habe: PARAMETER STYLE GENERAL
Das war nicht unwichtig, erinnere ich mich dunkel. Der Rest ist gleich.
-
Danke werd ich probieren :-)
Similar Threads
-
By HoScHiE in forum IBM i Hauptforum
Antworten: 28
Letzter Beitrag: 17-01-08, 10:35
-
By H.V in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 20-09-02, 16:00
-
By Bruno Jakob in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 28-02-02, 12:57
-
By hs in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 14-02-02, 06:30
-
By Stefan_R in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 23-01-02, 16:08
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks