-
Also Datenstrukturen als Returnwert geht zwar schon (ist dann vom Typ Zeichen) aber nicht unbedingt sinnvoll, da die Schnittstelle dann nicht eindeutig ist.
IO/O-Parameter sind Parameter die "by reference", also mit Adresse übergeben werden und die Definitionen CONST und VALUE nicht enthalten. Also alle Parameter, die keine Extradefinitionen enthalten.
Ein Problem ist noch die Definition STRING, da diese CONST mit einschließt.
-
 Zitat von Fuerchau
Also Datenstrukturen als Returnwert geht zwar schon (ist dann vom Typ Zeichen) aber nicht unbedingt sinnvoll, da die Schnittstelle dann nicht eindeutig ist.
Wenn eine Datenstruktur als Rückgabe-Wert definiert ist, kann sie auch als Datenstruktur empfangen werden.
In diesem Fall eine Dummy Datenstruktur an und versteckt diese in der Copy-Strecke für den Prototyp.
Der Rückgabe-Wert kann dann mit LIKEDS definiert und verwendet werden.
Beispiel:
PHP-Code:
* Copy-Strecke Prototyp
D DSQualName DS based(DummyPtr)
D Object 10A
D Library 10A
D GetQualName PR likeDS(DSQualName)
D ParmFile 10A
D ParmLib 10A
PHP-Code:
D MyFile S 10A inz('MYFILEP')
D MyLib S 10A
D DSQualFile DS likeDS(DSQualName)
*/-----------------------------------------------------
/Free
DSQualFile = GetQualName(MyFile: MyLib);
Dsply DSQualFile.Object;
Dsply DSQualFile.Library;
*inLR = *On;
/End-Free
PHP-Code:
P GetQualName B Export
D GetQualName PI likeDS(DSQualName)
D ParmObj 10A
D ParmLib 10A
D DSName DS likeDS(DSQualName)
*-------------------------------------------------------------
/Free
DSName.Object = ParmObj;
If ParmObj <> *Blanks;
If ParmLib <> *Blanks;
DSName.Library = ParmLib;
else;
DSName.Library = '*LIBL';
Endif;
EndIf;
Return DSName;
/End-Free
P GetQualName E
Ergänzung zu Dieter:
Es gibt auch noch die sogenannte Parameter-Übergabe by Constant Reference (Schlüssel-Wort CONST). Dabei wird geprüft, ob der übergebene Parameter der im Prototyp angegebenen Felddefinition entspricht. Bei Übereinstimmung wird die Adresse des Parameters an das rufende Programm oder Prozedur übergeben. Bei Abweichung wird ein temporäres Feld mit der erwarteten Definition erstellt und mit dem Paramete-Wert gefüllt. Anschliessend wird die Adresse diese neuen Feldes an das rufende Programm übergeben.
Die Parameter-Übergabe by VALUE kann zur für den Aufruf von Prozeduren verwendet werden. Für den Aufruf von Programmen ist nur eine Parameter-Übergabe by Reference möglich, auch Constant Reference.
Birgitta
Similar Threads
-
By loeweadolf in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 06-11-06, 15:05
-
By Ewald in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 14-02-06, 14:51
-
By rolf in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 14-10-05, 17:06
-
By Muchi in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 23-03-05, 08:04
-
By JonnyRico in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 23-11-04, 16:46
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