-
SQL UDFs und RPG, Probleme bei optionalen Parametern
Hallo,
heute habe ich mal keine Frage, sondern nur einen Hinweis. Wenn wir User defined Functions in SQL geschrieben haben, die ein RPG-Programm verwenden, dann haben wir optionale Parameter immer in der folgenden Form behandelt:
Code:
dcl-proc testproc *export;
dcl-pi *n;
fromDate date(*iso) options(*nopass:*omit);
end-pi;
if %parms >= %parmnum(fromDate) or %parms < 0 and %addr(fromDate) <> *NULL;
myDate = fromDate;
endif;
end-proc;
Falls das Programm von einem anderen RPG-Programm aufgerufen wird, wirkt der Teil:
if %parms >= %parmnum(fromDate)
Falls das Programm von SQL aufgerufen wird, werden keine Parameter über die RPG-Parameter-Strategie übergeben. Stattdessen gibt %parms = -1 übergeben. Es wirkt also folgender Code:
if %parms < 0 and %addr(fromDate) <> *NULL;
Das codieren wir bereits seit Jahren so und es hat bisher keine Probleme gemacht. Gerade hat Barbara Morris im developerWorks Formum geschrieben, dass das Verfahren so nicht sicher ist. Sie schreibt sogar, dass es unmöglich sei, in RPG sicher festzustellen, ob ein Parameter von SQL aus übergeben wurde.
Also aufpassen und optionale Parameter lieber direkt im SQL handeln.
Dieter
-
Deshalb gilt auch, dass man für externe UDFs mit optionalen Parametern für jede Parameter-Kombination eine (RPG)-Funktion generiert, die nichts anderes macht als die Orignial-Funktion aufzurufen. Diese Funktionen werden dann alle mit dem gleichen Namen (Überladung) registriert.
Alternativ kann man auch die externe Funktion mit allen Parametern registrieren und bei den optionalen Parametern Default-Werte hinterlegen. Werden beim Aufruf der Funktion dann nicht alle Parameter übergeben, werden für die fehlenden Parameter die Default-Werte übergeben.
Birgitta
-
Danke Birgitta.
Wir werden in Zukunft vorsichtiger sein bei optionalen Parametern.
Dieter
Similar Threads
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 09-10-17, 10:42
-
By _MG_ in forum NEWSboard Programmierung
Antworten: 14
Letzter Beitrag: 12-12-15, 13:07
-
By BenderD in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 26-05-14, 17:35
-
By hs in forum IBM i Hauptforum
Antworten: 14
Letzter Beitrag: 09-10-01, 13:06
-
By Flappes in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 30-08-01, 17:54
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