-
Variablenname in Variable
Hallo zusammen,
in anderen Programmiersprachen habe ich die Möglichkeit einen Variablen Namen variabel zu machen. Ich kenne das z.B. von PHP.
Beispiel:
$Name = "harkne"
$Var = "Name"
Wenn ich jetzt einen print $Var ausführe wird "Name" ausgegeben
Wenn ich einen print $$Var ausführe wird "harkne" ausgegeben.
Mit $$ wird nicht der Inhalt der Variablen sondern der Inhalt der in der Variablen gespeicherten Variable ausgegeben.
Ich hoffe es weiß jeder was ich meine.
Für mich ist es deshalb wichtig weil ich in einer Subfile eine Übersicht geänderter Feldwerte aus einer Datei anzeigen soll. Jetzt möchte ich nicht hergehen und jedes Feld einzeln Konstant angeben sondern die Felder wenn möglich programmtechnisch abarbeiten.
Jetzt unter dem Schreiben bin ich gerade am überlegen ob ich das über SQL hinbekomme.
Also Ziel ist es
Lies Satz 1 aus Datei 1 (dort steht der Update Before)
Lies Satz 2 aus Datei 1 (dort steht der Update Past)
Und jetzt in einer Schleife die Felder abarbeiten und die Feldwerte aus Satz 1 und Satz 2 vergleichen. Ist ein Feldwert unterschiedlich soll in die Subfile der Feldname der Wert vorher und der Wert nachher
Kann ich mir irgendwie die Feldnamen aus einer Datei per SQL ermitteln ???
Sorry Tausend Fragen. Vielleicht kann mir jemand helfen, vielleicht auch nur mit Ideen.
Vielen Dank
Viele Grüße Harald
-
Ich denke, das ist eher was für ein PHP-Forum.
-
Ich möchte doch aber das Ergebnis im RPG. Ich habe PHP nur als Beispiel gebracht wie es dort funktioniert und wollte wissen ob es sowas auch in RPG gibt.
-
Ich habe ein ähnliches Programm auch mal erstellt.
Um die Feldnamen zu ermitteln bin ich auf die Datei QSYS2/SYSCOLUMNS gegangen.
-
Ich habe mich wahrscheinlich missverständlich ausgedrückt.
Ich muss das Journal nachprogrammieren.
Natürlich aber nur für bestimmte Dateien.
Die Datensätze liegen mir auch bereits mit Update Before und Update Past vor. Jetzt soll ich aber nur die Felder in einer Subfile anzeigen die sich tatsächlich geändert haben.
Ich könnte jetzt abfragen:
if Name (Update Before) <> Name (Update Past)
eval SfFeld = "Name"
eval SfValBfr = Name (Update Before)
eval SfValPast = Name (Update Past)
endif
Und das mit jedem einzelnen Feld in der Datei
Sondern eleganter irgendwie mit Feldnamen einlesen und Inhalte der Feldnamen vergleichen. Dafür müsste es aber irgend eine Möglichkeit geben die Variablen in einer Variablen zu speichern und dann auch Variabel auszugeben.
Sehr schwer zu schreiben und zu erklären
-
ah ok, danke. Werde ich mal nachsehen
-
Ich denke, Pointers sind deine Freunde...
Nur mal Dr. Google fragen.
Als Häppchen:
https://publib.boulder.ibm.com/iseri...0925083545.htm
Den Tipp mit den SysColumns haste ja bereits bekommen.
kf
-
... sowas machen nur Masochisten mit RPG, oder arme Knechte, die ihre Vorgaben von Sadisten bekommen...
D*B
-
Das Ganze funktioniert nur in RPGLE.
Per Syscolumns kannst du die Feldliste mit Namen und Ausprägung auslesen, allerdings nicht die Pufferposition.
Hier bietet sich DSPFFD mit Outfile an, da bekommt man auch diese.
Per Feldtyp bzw. Spalte STORAGE dann die Bytelänge ermitteln (beachte bei Packed die Länge in Bytes!), ggf. die Feldposition (an Hand von ORDINAL_POSITION) hochzählen.
Bei DATE (4)/TIME (3)/TIMESTAMP (10) hast du jedoch schon verloren, da hier die interne Länge und nicht die Pufferlänge angegeben wird.
Da ist dann DSPFFD wohl besser, da hier das DATFMT berücksichtigt wird.
Bist du so gewappnet kannst du per %SUBST() die Felder vergleichen.
Für die Ausgabe musst du nur noch bei gepackten Feldern ein paar Verrenkungen programmieren.
-
... eleganter ist natürlich, wenn man sich das Programm immer dann neu generiert, wenn die Datei sich ändert und dann cached...
-
War von Eleganz die Rede?
Habe ich da was überlesen?
-
Du musst das Journal nachprogrammieren? Ich denke, hier liegt Dein Problem ;-)
Warum benutzt Du nicht das vom System?
-h
Similar Threads
-
By oulbrich in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 02-04-14, 11:05
-
By Robi in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 21-03-03, 09:16
-
By DEVJO in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 06-03-03, 11:35
-
By Henrik Motzkus in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 05-03-02, 09:13
-
By hpw in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 15-10-01, 13:23
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