[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    May 2004
    Beiträge
    444

    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    Ich denke, das ist eher was für ein PHP-Forum.
    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
    May 2004
    Beiträge
    444
    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.

  4. #4
    Registriert seit
    Dec 2014
    Beiträge
    2
    Ich habe ein ähnliches Programm auch mal erstellt.

    Um die Feldnamen zu ermitteln bin ich auf die Datei QSYS2/SYSCOLUMNS gegangen.

  5. #5
    Registriert seit
    May 2004
    Beiträge
    444
    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

  6. #6
    Registriert seit
    May 2004
    Beiträge
    444
    ah ok, danke. Werde ich mal nachsehen

  7. #7
    Registriert seit
    Jan 2007
    Beiträge
    905
    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

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... sowas machen nur Masochisten mit RPG, oder arme Knechte, die ihre Vorgaben von Sadisten bekommen...

    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/

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    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.
    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

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... eleganter ist natürlich, wenn man sich das Programm immer dann neu generiert, wenn die Datei sich ändert und dann cached...
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    War von Eleganz die Rede?
    Habe ich da was überlesen?
    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

  12. #12
    Registriert seit
    Jul 2001
    Beiträge
    2.646
    Du musst das Journal nachprogrammieren? Ich denke, hier liegt Dein Problem ;-)
    Warum benutzt Du nicht das vom System?

    -h
    www.RZKH.de
    IBM Champion 2022, 2023, 2024
    IBM i Community Advocate https://www.youracclaim.com/badges/6...c-7ad4ba147af6
    Common / CEAC
    http://pub400.com

Similar Threads

  1. RUNSQL Host Variable zurückgeben
    By oulbrich in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 02-04-14, 11:05
  2. SQL insert mit variable
    By Robi in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 21-03-03, 09:16
  3. Bibliotheksnamen Variable im Query einbauen?
    By DEVJO in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 06-03-03, 11:35
  4. Variable
    By Henrik Motzkus in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-03-02, 09:13
  5. ganzes Satzformat in Variable ?
    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
  •