-
VARCHAR RPG + DB
Hallo alle,
ich hab mal eine Frage bezüglich VARCHAR-Felder in Dateien.
Falls ich mich richtig erinnere musste man früher bei der Umwandlung von RPG-Programmen CVTOPT(*VARCHAR) angeben. Jetzt meinte ein Kollege dass er es auch ohne umwandeln konnte. Funktioniert dann das abspeichern mit variabler Länge noch richtig ? Kann mir jemand dazu was näheres sagen. Wofür brauche ich wenn es auch ohne geht dann noch CVTOPT(*VARCHAR) ?
Vielen Dank für Eure Mühe
Viele Grüsse Harald
-
Wenn kein *VARCHAR definiert ist, werden die Felder in RGP gar nicht erst übernommen. Solnage ich sie nicht referenziere (also verwende) gibt es auch keine Probleme.
In ILERPG werden die die Felder mit dem Attribut VARYING definert, so dass die Länge bei Zuweisungen und Vergleichen korrekt ermittelt wird. Ansonsten werden sie als Felder fester Länge definiert, so dass auch bei Zuweisungen das Feld mit Leerzeichen aufgefüllt wird, der Vorteil der variablen Speicherung also verloren geht.
Ausserdem unterscheiden sich die Funktionen %SIZE und %LEN !
-
Also dass ich es richtig verstehe.
Bei mir geht es um ILE RPG
Dort ist es nicht notwendig CVTOPT(*VARCHAR) anzugeben da dies automatisch gehändelt wird, oder wird das Feld mit Leerstellen aufgefüllt ?
-
OK, da habe ich mich etwas vertan. Es ist genau anders herum !
Fehlt die Angabe *VARCHAR werden in ILE die Felder als *VARY automatisch definiert.
Mit Angabe *VARCHAR werden die Felder als feste Felder definiert, wobei allerdings die Stellen 1-2 die Länge des Inhaltes als 2-Byte-Binärfeld enthält und im Programm selber verwaltet werden muss.
Bei RPG wurden VARLEN-Felder entweder nicht übernommen (ggf. Fehler bei der Umwandlung) oder als Felder fester Länge definiert.
Zu beachten ist bei Umstellung von RPG auf RPGLE also folgendes (insbesonders wenn CVTRPGSRC verwendet wurde):
Wurde RPG mit *VARCHAR umgewandelt, muss das auch mit dem umgestellten Programm gemacht werden, da sonst die ggf. vorhandene Selbstverwaltung der Längeninformation nicht funktioniert.
Bei neuen ILERPG's kann dies entfallen, da die Längeninfo automatisch verwaltet wird. Sollten allerdings Copy's verwendet werden, die sich auf *VARCHAR verlassen, so ist das entsprechend zu berücksichtigen.
Auch bei Programmaufrufen / Programmparametern mit *VARY-Feldern ist entsprechend aufzupassen.
Similar Threads
-
By mk in forum NEWSboard Java
Antworten: 8
Letzter Beitrag: 21-04-11, 21:51
-
By robertki in forum NEWSboard Programmierung
Antworten: 25
Letzter Beitrag: 19-01-07, 08:42
-
By timeless in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 11-01-07, 12:04
-
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
-
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