-
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?
-
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
-
hallo kaufmann
in der qsys/qadbxref stehen ebenfalls die benötigten Informationen.
lg
Hans-Joachim
-
oder mit dem API
List Record Formats (QUSLRCD) API
Karl-Heinz
-
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
-
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,
-
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
-
By haertl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 30-05-06, 13:36
-
By TobiasHe in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 08-04-05, 08:44
-
By sepp in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 09-07-02, 16:09
-
By HoScHiE in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 25-10-01, 21:06
-
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
-
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