[NEWSboard IBMi Forum]

Thema: likerec

  1. #1
    Registriert seit
    Jul 2002
    Beiträge
    218

    likerec

    hallo forum,

    ich wollte mir etwas tipparbeit ersparen

    Fsklmvwl00 uf a e k disk rename(sklmvwp: sklmvw00)
    D Rec ds likerec(sklmvw00: *all)
    D RecKeyds likerec(sklmvw00: *key)

    /free
    RecKey.smfkz=smfkz;
    RecKey.smart#=smart#;
    chain %kds(Reckey) sklmvwl00;
    /end-free

    der Satz wird gefunden, die felder sind gefüllt, nicht aber die
    rec.xxxx - Felder

    und hatte mir vorgestellt, das nach dem chain
    diese datenstruktur gefüllt ist. leider war dem nicht so.

    habe ich nun einen codier- oder denkfehler ?


    fragende grüße
    Hans-Joachim

  2. #2
    Registriert seit
    May 2005
    Beiträge
    103
    Guten Morgen,

    soweit ich weiß, werden durch das Schlüsselwort likerec lediglich die Feldattribute übernommen, nicht aber die Feldinhalte.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    A data structure defined with LIKEREC is a qualified data structure.

    Wenn du die Felder gefüllt haben willst, dann nimm nicht "likerec" sondern definiere die Struktur wie immer mit "REC E DS EXTNAME(MYFILE)".
    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ergänzung:

    The following example uses prefix
    MYDS.to associate the fields in MYFILE with
    the subfields of qualified data structure MYDS.

    Fmyfile if e disk prefix(’MYDS.’)
    D myds e ds qualified extname(myfile)

    was natürlich auch mit einer Likerec-DS geht, da diese ja qualified ist.
    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

  5. #5
    Registriert seit
    Jul 2002
    Beiträge
    218
    @tobse77
    @fuerchau


    vielen Dank für die Hilfe !!!!!

    werde es entsprechend umstellen.



    lg
    Hans-Joachim

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

    wenn mit LIKEREC oder auch mit EXTFILE und den Schlüssel-Worten QUALIFIED oder PREFIX eine externe Datenstruktur definiert wird, in die der Datensatz ausgegeben werden soll, muss diese Datenstruktur auch beim Lesebefehl angegeben werden. Um den Datensatz aus der Datenstrukrur fortzuschreiben, muss auch bei Update die Datenstruktur angegeben werden.

    Auf die Ausgabe in die Datenstruktur kann man nur dann verzichten, wenn die Datenstruktur nicht qualifiziert ist und die Felder gleich heißen (also kein Prefix angegeben wurde).

    PHP-Code:
    FMYFILE    UF A E           K DISK

    D DSMYFILE        DS                  likeRec
    (MyFormatinz
    D DSMyKey         DS                  LikeRec
    (MyFormat: *Key)

     /
    Free
        Chain 
    %KDS(DSMyKeyMyFile DSMyFile;
        If %
    Found;
           
    DSMyFile.Fld1 123;
           ........
           
    Update MyFormat DSMyFile;
        EndIf; 
    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

Berechtigungen

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