[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Natürlich besteht da die Gefahr, allerdings prüft ja der Compiler bereits nichts, so dass Überschreiber schon immer möglich sind.
    Das Schlüsselwort CONST verhindert nur zur Compilezeit ein Überschreiben durch Fehlermeldungen, allerdings nicht den Zugriff auf falsch definierte Speicherbereiche.
    Da ein Serviceprogramm ohne Änderung des Aufrufers erneuert werden kann, merkt die Laufzeit hier nichts, da es keine Signaturprüfung gibt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  2. #2
    Registriert seit
    Aug 2014
    Beiträge
    181
    Hallo Dieter,

    kleiner Tipp mit rtnparm geht es noch etwas schneller
    PHP-Code:
    dcl-pi *n varucs2(300000rtnparm
    Herzliche Grüße
    Rainer Ross

    Webanwendungen auf IBM i so schnell wie Greescreen - Hier klicken und testen
    http://www.myhofi.com/tms/HTML/MySubfileApp.html

    Selektion Umsatz, Kredit und Saldo geht über < oder > oder <= oder >=
    siehe https://docs.webix.com/datatable__filtering.html#number

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Vielen Dank. Dass mit rtnparm kannte ich noch nicht. Trotz des Nachlesens in der RPG Reference bin ich mir noch nicht ganz sicher, was es tut. In der Referenz steht, dass es Vorteile hat, wenn die realen Rückgabewerte klein sind. Dann wird wohl weniger Speicher benötigt. Die Frage ist, ob es immer funktioniert.

  4. #4
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Hi Dieter,

    eigentlich ist der Vorteil dann, wenn die Rückgabewerte groß sind.
    Normal wird eine Kopie beim Returnwert erstellt. Beim RTNPARM wird lediglich die Speicheradresse (Pointer) vom Wert zurückgegeben.
    Das ist dann am schnellsten.

    lg Andreas

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dann les dazu mal die Beschreibung:

    The RTNPARM keyword specifies that the return value of a procedure is to be handled internally as a
    parameter of the same type as the defined returned value, passed by reference.

    Da der zusätzliche Parameter unbenannt ist, lässt er sich also nicht direkt ansprechen.
    Die Wirkung entfaltet sich erst, wenn man ein Ergebns im Return spezifiziert, da dieses dann nicht in einer Zwischenvariablen sondern direkt übergeben wird.

    Es bringt aber keinen Vorteil, wenn man sowieso eine benannte Variable benötigt die dann beim Return den Wert doch wieder kopieren muss.
    Ansonsten: laut Doku bringt es besonders bei großen Returnwerten etwas, da der automatische Speicher dadurch nicht belastet wird.

    Zu beachten sind aber besonders die Hinweise bzgl. %PARMS und %PARMNUM, da diese Funktionen den Wert um 1 größer melden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... das ist wieder so eine typische RPG-Denke. Das sind auf heutigen Rechnern nicht mal Mikrosekunden, die man da vermeintlich einspart und den eigentlichen Pferdefuß übersieht man: die RTNPARM Arie verhindert caching, was in vielen Fällen mehr bringt. Was Speicher sparen angeht: das verträgt sich nicht mit der zunehmenden Verfettung der RPG Runtime durch Gimmicks wie dynamische Feldgruppen (hier sei am Rande erwähnt, dass es schon seit langem Open Source Komponenten gibt, die das besser können).

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. http_url_get mit unicode
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 29-03-19, 13:56
  2. Zeichenumsetzung AS/400 nach Streamfile
    By Theo in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 02-03-18, 12:46
  3. Ausländische Zeichen in Streamfile schreiben
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 12-12-17, 13:32
  4. Konvertieren in Unicode
    By Rainer Ross in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 28-10-16, 16:16
  5. IFS-Streamfile in RPG bearbeiten
    By Bleil in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 13-10-01, 20:15

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •