[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.928

    CvtOpt(*VARCHAR)

    Hallo Holger,

    Dein Problem liegt in der Verwendung des Schlüssel-Wortes CVTOPT(*VARCHAR) in den H-Bestimmungen. Durch die Angabe dieses Schlüssel-Wortes werden die Felder mit variabler Feldlänge aus externen Dateien in Felder mit fixer Feldlänge umgewandelt.

    Damit stimmt die in RPG-verwendete Feldlänge (fix 13A) des Schlüssel-Feldes nicht mehr mit der tatsächlichen Länge des Schlüssel-Feldes (13A mit variabler Länge) überein. Das ist der Compile-Fehler!

    Wird das Schlüssel-Wort CVTOPT nicht angegeben, oder mit CVTOPT(*NoVarChar) werden die Felder auch in RPG als Felder mit variabler Länge gehandelt.

    Birgitta
    Birgitta Hauser

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

  2. #2
    Registriert seit
    Jul 2002
    Beiträge
    151
    Zitat Zitat von B.Hauser
    Hallo Holger,

    Dein Problem liegt in der Verwendung des Schlüssel-Wortes CVTOPT(*VARCHAR) in den H-Bestimmungen. Durch die Angabe dieses Schlüssel-Wortes werden die Felder mit variabler Feldlänge aus externen Dateien in Felder mit fixer Feldlänge umgewandelt.

    Damit stimmt die in RPG-verwendete Feldlänge (fix 13A) des Schlüssel-Feldes nicht mehr mit der tatsächlichen Länge des Schlüssel-Feldes (13A mit variabler Länge) überein. Das ist der Compile-Fehler!

    Wird das Schlüssel-Wort CVTOPT nicht angegeben, oder mit CVTOPT(*NoVarChar) werden die Felder auch in RPG als Felder mit variabler Länge gehandelt.

    Birgitta
    @Birgitta,
    Danke für die Antwort, aber das Schlüssel-Wort CVTOPT nicht angeben, oder mit CVTOPT(*NoVarChar) geht leider nicht, da ich Felder vom Typ Binär 2 Byte Länge habe, in die ich den Wert X'4000' also DEC 16384 zuweisen muß. Dies bringt bei *NOVARCHAR einen RPG-Fehler.
    Habe die Sache aber gelöst: das Varying Keyfeld muß 2 Byte kürzer definiert werden als das Feld in der Datei, weil er die Längeninfo selbst wieder dazurechnet bei Varying.
    Danke an alle
    Gruß Holger

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Die Länge eines Varying-Feldes wird mit der Builtin-Funktion %LEN gesetzt bzw. auch automatsch bei Zuweisung verändert:

    /free
    myvarfield = 'Dies ist der Text'; // Die Länge ist nun 17
    %len(myvarfield) = 100; // Die Länge ist nun 100, mit Leerzeichen aufgefüllt
    %len(myvarfield) = 10; // Die Länge ist 10, die Daten abgeschnitten
    /end-free
    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

Similar Threads

  1. Kein Zugriff über QNTC auf Win-Share
    By marmart in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 25-09-07, 15:29
  2. Nachricht CPDB053 beim Zugriff auf Windows Freigabe
    By schatte in forum NEWSboard Windows
    Antworten: 7
    Letzter Beitrag: 21-11-06, 11:37
  3. QNTC Zugriff auf CD Laufwerk Fehlerhaft
    By pwrdwnsys in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-11-06, 15:34
  4. Datei von S/36 auf AS/400 holen
    By WeKaSys in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 06-11-06, 17:34
  5. Antworten: 0
    Letzter Beitrag: 24-01-06, 16:29

Berechtigungen

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