[NEWSboard IBMi Forum]

Thema: CL Basics

Hybrid View

  1. #1
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Mit dem DOFOR hab ich bis jetzt noch nichts gemacht. Aber du könntest dieses Programm von einem anderen mehrmals aufrufen lassen, jedes Mal mit anderen Werten. Die CHGVARs mußt du natürlich entfernen wenn die Werte beim Aufruf übergeben werden. Eine Verbindung zu einer Datenstromdatei kann mit den Befehlen DEL, ERASE oder RMVLNK aufgehoben werden.

  2. #2
    Registriert seit
    Aug 2006
    Beiträge
    6
    Ich hab mal folgendes fabriziert:

    PHP-Code:
    DCL        VAR(&PFAD)    TYPE(*CHARLEN(1024VALUE('/home/')
    DCL        VAR(&TOCCSIDTYPE(*DEC)  LEN(5)    VALUE(1208)

    DCL        VAR(&LIB1)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE1)  TYPE(*CHARLEN(10VALUE(ARSTAP)

    DCL        VAR(&LIB2)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE2)  TYPE(*CHARLEN(10VALUE(ARSTKP)

    DCL        VAR(&LIB3)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE3)  TYPE(*CHARLEN(10VALUE(FBSPOP)

    DCL        VAR(&LIB4)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE4)  TYPE(*CHARLEN(10VALUE(KDSTAP)

    DCL        VAR(&LIB5)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE5)  TYPE(*CHARLEN(10VALUE(KGSTAP)

    DCL        VAR(&LIB6)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE6)  TYPE(*CHARLEN(10VALUE(KOSTAP)

    DCL        VAR(&LIB7)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE7)  TYPE(*CHARLEN(10VALUE(KUKONP)

    DCL        VAR(&LIB8)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE8)  TYPE(*CHARLEN(10VALUE(LISTAP)

    DCL        VAR(&LIB9)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE9)  TYPE(*CHARLEN(10VALUE(PRSTAP)

    DCL        VAR(&LIB10)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE10)  TYPE(*CHARLEN(10VALUE(RASTAP)

    DCL        VAR(&LIB11)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE11)  TYPE(*CHARLEN(10VALUE(SOSTAP)

    DCL        VAR(&LIB12)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE12)  TYPE(*CHARLEN(10VALUE(TRSTAP)

    DCL        VAR(&LIB13)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE13)  TYPE(*CHARLEN(10VALUE(TSSTAP)

    DCL        VAR(&LIB14)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE14)  TYPE(*CHARLEN(10VALUE(TTPOSP)

    DCL        VAR(&LIB15)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE15)  TYPE(*CHARLEN(10VALUE(TTSTAP)

    DCL        VAR(&LIB16)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE16)  TYPE(*CHARLEN(10VALUE(VPSTAP)

    DCL        VAR(&LIB17)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE17)  TYPE(*CHARLEN(10VALUE(VSSTAP)

    DCL        VAR(&LIB18)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE18)  TYPE(*CHARLEN(10VALUE(VSSTPP)

    DCL        VAR(&LIB19)     TYPE(*CHARLEN(10VALUE(DBLDTA)
    DCL        VAR(&DBFILE19)  TYPE(*CHARLEN(10VALUE(VTSTAP)

    DCL        VAR(&LIB20)     TYPE(*CHARLEN(10VALUE(DBLDKD)
    DCL        VAR(&DBFILE20)  TYPE(*CHARLEN(10VALUE(XDINFPU)

    DCL        VAR(&LIB)     TYPE(*CHARLEN(10)
    DCL        VAR(&DBFILE)  TYPE(*CHARLEN(10)
    DCL        VAR(&STMF1)   TYPE(*CHARLEN(1024)
    DCL        VAR(&STMF2)   TYPE(*CHARLEN(1024)
    DCL        VAR(&LOOP)    TYPE(*INT)  LEN(2VALUE(0)

    DOFOR      VAR(&LOOP)  FROM(1)  TO(20)

      
    CHGVAR     VAR(&LIB)     VALUE(&LIB *TCAT &LOOP)
      
    CHGVAR     VAR(&DBFILE)  VALUE(&DBFILE *TCAT &LOOP)
      
      
    CHGVAR     VAR(&STMF1)   VALUE(&PFAD *TCAT &DBFILE *TCAT '.as400.csv')
      
    CHGVAR     VAR(&STMF2)   VALUE(&PFAD *TCAT &DBFILE *TCAT '.pc.csv')
      
      
    CPYTOIMPF  FROMFILE(&LIB/&DBFILETOSTMF(&STMF1) +
                 
    MBROPT(*REPLACESTMFCODPAG(*STMF) +
                 
    RCDDLM(*CRLFFLDDLM(';')

      
    CPY        OBJ(&STMF1TOOBJ(&STMF2FROMCCSID(37) +
                 
    TOCCSID(&TOCCSIDDTAFMT(*TEXT)

      
    CHGAUT     OBJ(&STMF1USER(*PUBLIC) DTAAUT(*RWXOBJAUT(*ALL)
      
    CHGAUT     OBJ(&STMF2USER(*PUBLIC) DTAAUT(*RWXOBJAUT(*ALL

    ENDDO 
    Will leider nicht so ganz kompilieren:
    PHP-Code:
        7200-   CHGVAR     VAR(&LIB)     VALUE(&LIB *TCAT &LOOP)   
     * 
    CPD0712 30  Art von Operand  für Operator ungültig.         
     * 
    CPD0711 30  Art der Ausdrucksoperanden unterschiedlich.     
        
    7300-   CHGVAR     VAR(&DBFILE)  VALUE(&DBFILE *TCAT &LOOP)
     * 
    CPD0712 30  Art von Operand  für Operator ungültig.         
     * 
    CPD0711 30  Art der Ausdrucksoperanden unterschiedlich

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Über dynamisch erzeugte Variablennamen kann man soweit ich weiß in CL nicht auf Variablen zugreifen.

    Aber pack das eigentliche Kopierprogramm doch in ein eigenes Programm (Programm CPYTOCSV2) und mach ein paar CALLs anstelle des DOFORs:
    PHP-Code:
    CALL PGM(CPYTOCSV2PARM(&LIB1 &DBFILE1)
    CALL PGM(CPYTOCSV2PARM(&LIB2 &DBFILE2)
    CALL PGM(CPYTOCSV2PARM(&LIB3 &DBFILE3)
    CALL PGM(CPYTOCSV2PARM(&LIB4 &DBFILE4)
    CALL PGM(CPYTOCSV2PARM(&LIB5 &DBFILE5)
    ... 

  4. #4
    Registriert seit
    Aug 2006
    Beiträge
    6
    Jep. So machichs. Danke für deine Hilfe.

    Problem gelöst. Zwar nicht so elegant wie ich mir das erhofft hatte, aber meh.

    Beggars cant be choosers

    MfG
    SJürges

  5. #5
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Lib ist char,
    und Loop ist int.

    Das geht nicht. Mußt du vorher umwandeln.

    GG

Similar Threads

  1. Dynamisches SQL in einem CL erstellen
    By Sony in forum IBM i Hauptforum
    Antworten: 27
    Letzter Beitrag: 20-07-09, 21:48
  2. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  3. "Vary on" in CL
    By RLPforum in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-01-07, 14:58
  4. Übergabeparameter im CL Script
    By bo1 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-06-06, 15:00
  5. Bibliothekssicherungsliste via CL ändern
    By becama in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 23-06-06, 14:46

Berechtigungen

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