-
Hallo Birgitta,
vielen Dank für die klare Antwort. Es ist leider nicht das erste Mal, dass ChatGPT "halluziniert". Aber manchmal sind die Tipps der KI ganz gut.
Liebe Grüße,
Dieter
-
Ich verwende für sowas grundsätzlich den sog. SQL-Style.
Der hat den Vorteil, dass es zu jedem Parameter und/oder Returnwert auch einen NULL-Anzeiger gibt.
Damit kann man a) Null-Werte behandeln, b) NULL zurückgeben.
Wenn man nicht immer alle Parameter benötigt, kann man mit sog. Überladungen dieselbe Prozedur mit verschiedenen Parametern definieren.
Wobei die Überladungen nur einen SQL-Body benötigen, der die eigentliche UDF mit Defaults, eben NULL, für die fehlenden Parameter aufruft.
Das macht SQL dann erst so richtig flexibel.
Parameter an die Prozedur werden grundsätzlich per Referenz übergeben (CONST ändert das nicht und VALUE ist für SQL nicht erlaubt).
SQL (und auch RPGLE) generiert für nicht passende Parameter sowieso neue Felder. Wenn du also eine Konstante in In/Out übergibst, bekommst du ganz normal deine Input-Variable, nur wenn du da was reinschreibst, ist es halt weg.
Out Parameter müssen als Felder angegeben werden.
ChatGPT hat in so weit recht, wenn Überladungen von Prozeduren erstellt werden, was anscheinend vorausgesetzt wurde;-).
-
Es gibt eine einfache Grundregel:
Bei SQL Funktionen wird der Rückgabewert über den RETURN gemacht.
Bei SQL Prozeduren wird der Rückgabewert über die Parameter (mit IN, OUT und INOUT) gesteuert.
SQL Table Function liefern beim RETURN halt eine Tabelle zurück.
Das was du also willst ist eher eine SQL Prozedur.
Du könntest auch eine SQL Prozedur erstellen, um den Wert aus dem Parameter zu erhalten.
Und dann noch eine SQL Funktion schreiben, in der du die SQL Prozedur aufrufst und dann mit RETURN den zurückgelieferten Wert der SQL Prozedur, zurückgeben:
SQL Funktion --> SQL Prozedur --> RPG Prozedur
lg Andreas
-
Vielen Dank für eure Infos.
Mit ist klar, wie es mit SQL-Procedures und Table-Functions geht. Mein Problem war, dass ich ein fertiges RPGLE-Serviceprogramm habe, was bereits im Einsatz ist. Dieses fertige Programm möchte ich gerne in einer SQL-UDF nutzen. Und da war ich mir unsicher, was mit dem In/Out-Parameter passiert, wenn RPG da irgendwas reinschreibt. Wenn der Wert einfach verworfen wird (davon gehe ich aufgrund der Posts mal aus), ist das für mich OK.
LG, Dieter
Similar Threads
-
By opeker in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 21-10-15, 12:42
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 27
Letzter Beitrag: 02-12-14, 09:33
-
By hartmuth in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 24-07-14, 10:52
-
By loisl in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 08-11-13, 16:37
-
By roko in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 19-08-09, 06:08
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