[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2002
    Beiträge
    32

    Post ILE RPG, Berechnung extern definieren

    Hallo immer noch RPG-Fans !

    Ist es möglich, eine EVAL-Anweisung extern zu definieren.
    Das heisst ich möchte z.B. durch die Benutzer eine Formel eingeben lassen, die dann in einer PF-Datei gespeichert, und vorgängig auf ihre Gültigkeit geprüft wird.

    Danach sollte ein RPG-Programm diese Formel
    ausrechnen.

    Also z.B. EVAL RESULTAT=FORMEL
    (Wobei Formel das Feld mit der Formel aus der PF-Datei ist.)

    (Ich könnte natürlich ein Programm (Source) mit der Formel erstellen lassen und danach umwandeln. Aber ich suche eine Möglichkeit,
    dies direkt im Programm zu erledigen.)

    Wer hat Vorschläge ?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241

    Post

    Nun, da RPG immer noch kompiliert wird, also ein PGM-Objekt erstellt werden muss, ist ein dynamischer EVAL so nicht möglich.

    Die einzige Möglichkeit ist hier dynamisches SQL !

    Zwar kann die SQL-Anweisung SET nicht verwendet werden, aber ein SELECT ist immer möglich. Dieser kann auch mittles Prepare und Execute vorbereitet und ausgeführt werden.
    Sicher, für einen Select brauch ich eine Datei, aber ich brauch keine Daten, kann also eine Pseudodatei nehmen.
    Keine Daten ? Dann gibts ja keine Sätze !
    Fast richtig, es gibt aber mindestens eine Funktion die IMMER ein Ergebnis liefert:

    "Select count(*) from MyFile" ! ==> Ergebnis ist mindestens 0 !

    Und was ist mit der Formel ?

    "Select count(*), >Formel< from MyFile"

    Die Syntaxprüfung wird automatisch durchgeführt, über die SQLCA bekomme ich auch die genaue Position der fehlerhaften Formel.
    Habe ich keinen SQL-Fehler, kann ich mittels
    "open ..."
    "fetch ... using descriptor ..."
    "close ..."
    den dynamschen Select ausführen.

    Wie ich nun dynamisches SQL benutze wird ziehmlich gut in den SQL-Handbüchern beschrieben und würde hier den Rahmen sprengen.
    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

  3. #3
    Registriert seit
    Jan 2001
    Beiträge
    340

    Post

    @Bau

    die einfachste Möglichkeit ist ein 2. Job,in dem ein kleines Rexx Skript aktiv ist. Kommunikation über die RexxQ.

    Alternativ gehts auch über QMQRY oder SQL.


    @Fuerchau

    IBM in ihrer Weisheit stellt für diese Zwecke die Tabelle QSQPTABL zur Verfügung. Ist bei mir in QSYS2. (Darüber werden auch die "set" Anweisungen abgewickelt, weshalb die Tabelle manchmal unter den offenen Dateien auftaucht).


    Gruß
    Rolf

    [Dieser Beitrag wurde von rmittag am 05. Dezember 2002 editiert.]

Similar Threads

  1. ILE RPG / SQL Füllen einer Feldgruppe
    By homue in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 18-07-07, 16:47
  2. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  3. DDS in ILE RPG
    By Squall in forum IBM i Hauptforum
    Antworten: 82
    Letzter Beitrag: 19-10-06, 15:37
  4. ILE RPG und dynamisches Array
    By Squall in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 10-10-06, 08:53
  5. Return ILE RPG
    By Squall in forum IBM i Hauptforum
    Antworten: 31
    Letzter Beitrag: 28-09-06, 17:53

Berechtigungen

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