[NEWSboard IBMi Forum]

Thema: RPG-400

  1. #1
    Registriert seit
    May 2005
    Beiträge
    64

    RPG-400

    Jetzt holt's mich ein.
    Ich versuche im RPG400 eine Datei mit SQL zu verarbeiten, scheitere aber bereits an der Umwandlung des Programms.
    Problem sind a) die Länge der Feldnamen und b) die Art der Felder.

    Die Feldnamen könnte ich im RPG ja umbenennen, aber die Felder mit der variablen Länge oder der Art DATE/TIME/TIMESTAMP werden ignoriert.

    Die brauch ich natürlich. Kann jemand helfen?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Du kannst alles mit SQL erledigen.
    Allerdings kannst du für diese Felder nicht auf externe DS referieren sondern musst die Felder als Char-Felder in ausreichender Größe definieren (Datum 10 bei ISO, Timestamp 22).
    SQL übernimmt für dich die Konvertierung.

    Anders siehts etwas mit variablen Feldern aus.
    Diese musst du ausreichend groß anlegen.
    Beim Select wird das Feld eben mit Leerzeichen aufgefüllt.

    Beim Insert/Update solltest du dann die SQL-Funktion trim(: MyField) verwenden, wenn die Länge nicht als Maximum gesetzt werden soll.

    Null-Flags werden als Variablen vom Typ "B 1 2" definiert.
    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
    Aug 2001
    Beiträge
    2.873
    Hallo,

    Wenn Du mit SQL arbeitest, solltest Du sowieso nur die Felder verwenden, die Du tatsächlich brauchst. Damit könnten sich schon die unbrauchbaren Datentypen erledigt haben.

    Was die langen Feldnamen angeht, so musst Du lediglich für die Ausgabe kurze, maximal 6 stellige Host-Variablen definieren. Diese Host-Variablen müssen auch dann in den die Datentypen, die RPGIII verarbeiten kann definiert sein. Felder mit variabler Länge werden korrekt in Host-Variablen mit fixer Länge übertragen, Integer-Felder werden korrekt in gepackt oder gezont numerische Felder übernommen. Bei Fließkomma, könnte es bei der Übernahme evtl. zu Rundungsdifferenzen kommen, sofern nicht genügend Nachkommastellen definiert wurden.

    Bei Datum und Zeit ist es schon schwieriger. Hier kommt es darauf an, wie Du die Ausgabe-Felder benötigst, d.h. alpha (mit oder ohne Tennzeichen) oder numerisch. Mit SQL müssen die Felder in das gewünschte Format gecastet werden:

    Beispiel:
    1. Datum im Format 'JJJJ-MM-TT', Zeit im Format 'HH.MM.SS', Zeitmarke im Format 'JJJJ-MM-TT-HH.MM.SS.MSMSMS:
    Code:
    Select Char(MyDate, ISO), Char(MyTime, ISO),
           Char(MyTimestamp) ...
    2. Datum im Format 'JJJJMMTT', Zeit im Format HHMMSS, Zeitmarke im Format JJJJMMTTHHMMSSMSMSMS, Zeitmarke im Format JJJJMMTTHHMMSS:
    Code:
    select Replace(char(MyDate, ISO), '-', ''),                    
           Replace(Char(MyTime, ISO), '.', ''),                    
           Replace(Replace(Char(MyTimestamp), '-', ''), '.', ''),  
           Left(Replace(Replace(Char(MyTimestamp), '-', '') ...
    3. Numerisches Datum im Format JJJJMMTT, Zeit im Format HHMMSS, Zeitmarke im Format JJJJMMTTHHMMSS
    Code:
    select Cast(Replace(char(current_Date, ISO), '-', '') as Dec(8, 0)), 
           Cast(Replace(Char(Current_Time, ISO), '.', '') as Dec(6, 0)), 
           Cast(Left(Replace(Replace(Char(Current_Timestamp), '-', ''),  
                       '.', ''), 14) as Dec(14, 0))
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. Rückgabewert vom RPG Programm
    By mk in forum NEWSboard Java
    Antworten: 8
    Letzter Beitrag: 21-04-11, 21:51
  2. RPG: Client Infos lesen?
    By robertki in forum NEWSboard Programmierung
    Antworten: 25
    Letzter Beitrag: 19-01-07, 08:42
  3. Bibliotheksliste in RPG IV abfragen
    By timeless in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 11-01-07, 12:04
  4. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58

Berechtigungen

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