-
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 ?
-
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.
-
@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
-
By homue in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 18-07-07, 16:47
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By Squall in forum IBM i Hauptforum
Antworten: 82
Letzter Beitrag: 19-10-06, 15:37
-
By Squall in forum NEWSboard Programmierung
Antworten: 9
Letzter Beitrag: 10-10-06, 08:53
-
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
-
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