[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2006
    Beiträge
    88

    Satzlänge einer Datei in RPG /CL ermitteln

    Ich brauche eine Möglichkeit die Gesamtlänge einer Datei in einem Programm zu ermitteln. Habe etwas mit RTVOBJD rumgespielt, finde aber a nicht den richtigen Wert.
    Kann mir da einer helfen?

  2. #2
    Registriert seit
    Feb 2002
    Beiträge
    152

    Smile

    Hallo,

    der Befehl DSPFD sollte funktionieren. Folgendes machen:

    1. DSPFD FILE(LIB/DATEI) TYPE(*RCDFMT) OUTPUT(*OUTFILE) OUTFILE(OUTLIB/OUTFILE).

    2. In der Datei OUTFILE gibt es dann das Feld RFLEN. Hier steht die Länge drin.

    Gruss
    akorb

  3. #3
    Registriert seit
    Jul 2002
    Beiträge
    218
    hallo kaufmann

    in der qsys/qadbxref stehen ebenfalls die benötigten Informationen.


    lg
    Hans-Joachim

  4. #4
    Registriert seit
    Feb 2008
    Beiträge
    104
    oder mit dem API

    List Record Formats (QUSLRCD) API




    Karl-Heinz

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Hallo,

    man kann auch die Satzlänge über die Catalog-View SYSTABLES in der QSYS2 ermitteln:


    PHP-Code:
    SELECT ROW_LENGTH 
       FROM SYSTABLES              
       WHERE     system_Table_name 
    'MYFILE'        
             
    and system_Table_Schema 'MYLIB' 
    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

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Die Satzlänge einer Datei spielt doch eigentlich gar keine Rolle, da sie i.W. eine Pufferlänge und nicht die tatsächliche Satzlänge wiedergibt.
    Mit SQL ist das sowieso egal, da automatische Konvertierungen zwischen Hostvariablen stattfinden.
    In RPG stellt sich das auch noch etwas anders dar, wenn ich nämlich eine Dezimal-Variable in einer DSPF/PRTF verwende wird die generell gezont definiert!
    Nur wenn ich die PF/LF in einer DS (extern) angebe, werden gepackte Dezimalfelder auch als gepackt definiert.

    Insbesonders Datumsfelder hängen von dem in der H-Bestimmung (Compileroption) angegebenen Datumsformat ab und sind eben nicht immer 10-Stellig.

    Die physische Satzlänge gibt es eigentlich auch nicht, da insbesonder LOB's und z.T. VARLEN-Felder gar nicht im eigentlichen Satz gespeichert werden sondern über Zeiger verwaltet werden.

    Man bedenke auch die Speicherungsform von DATE/TIME/TIMESTAMP-Felder.
    Timestamps sind im Puffer z.B. 26 Stellen, belegen tatsächlich aber nur 8 Bytes (64-Bit).

    Wenn ich mir dann noch die eigentlich Frage ansehe "Gesamtlänge einer Datei" so ist das für mich ganz einfach die Objektgröße und nicht die Satzlänge.

    Die Objektgröße erfahre ich mit RTVOBJD ... SIZE(&MYSIZE), bei Teildaten RTVMBRD kann ich die Information noch trennen mit DTASPCSIZ bzw. ACCPTHSIZ,
    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

  7. #7
    Registriert seit
    Jan 2008
    Beiträge
    122
    in der "open feedback area" steht alles drin. die entsprechende datenstruktur wird durch das schlüsselwort INFDS in den RPG-dateibestimmungen befüllt. weitere literatur AS/400 programmierung datenverwaltung sc12-3918-2 anhang A-1. im VARPG ist nach dem open noch die POST-operation erforderlich.

Similar Threads

  1. Excel Datei mit RPG und POI/HSSF in A4
    By haertl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 30-05-06, 13:36
  2. RPG - Eine Datei 2x einbinden
    By TobiasHe in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 08-04-05, 08:44
  3. Zeitdauer ermitteln in RPG
    By sepp in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 09-07-02, 16:09
  4. Alphawerte in Feld ermitteln - ILE RPG
    By HoScHiE in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 25-10-01, 21:06
  5. Satzlänge in CL ermitteln
    By kschmidt in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 19-06-01, 17:35

Berechtigungen

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