[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2010
    Beiträge
    83
    ...bin jetzt leider im Haus unterwegs - ich werde das umgehend so umsetzen wie von Euch beschrieben und melde mich wieder.

    Gruss
    Tobias

  2. #2
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    Hallo allerseits,

    QMQRYs werden bei uns viel benutzt - umso mehr finde ich die vielen Hochkomma lästig - so richtig lesen kann man das nicht und sich merken, wieviele man braucht, ist auch nicht so toll.
    Bei Dezimalwerten ist es wieder anders.
    Und die Variablen dürfen auch nur 55 Zeichen lang sein.

    Wir haben daher das Thema in ein Unterprogramm verschoben, habe ich hier mal eingefügt, vielleicht könnt Ihr das ja gebrauchen.

    Code:
    ------------- CL -------------
    DCL        VAR(&PROJ) TYPE(*CHAR) LEN(8) 
    DCL        VAR(&DAT) TYPE(*DEC) LEN(8 0) 
    DCL        VAR(&QMPROJ) TYPE(*CHAR) LEN(55) 
    DCL        VAR(&QMDAT) TYPE(*CHAR) LEN(8)   
    DCL        VAR(&IN) TYPE(*CHAR) LEN(2000)   
    DCL        VAR(&OUT) TYPE(*CHAR) LEN(2000)  
    ...
    CHGVAR     VAR(&IN) VALUE(&PROJ !< '%') 
    CALL       PGM(TRMSTR1) PARM(&IN &OUT)  
    CHGVAR     VAR(&QMPROJ) VALUE(&OUT)     
     
    CHGVAR     VAR(&QMDAT) VALUE(&DAT)
    STRQMQRY   QMQRY(&QMQRY) OUTPUT(&OUTPUT) +
      SETVAR((PROJ &QMPROJ) (DAT &QMDAT)) 
    ------------- QMQRY -------------
    select ... from ... where
      lpo33>&DAT  and  pjz06 like &PROJ 
    ------------- TRMSTR1 -------------
     *                                                                  
    D in              S              1A   DIM(2000)                     
    D out             S              1A   DIM(2000)                     
     *                                                                  
     *******************************************************************
     *                                                                  
    C     *entry        plist                                           
    C                   parm                    $in            2000     
    C                   parm                    $out           2000     
     *                                                                  
     *                                                                  
    C                   movea     $in           in                      
    C     ' '           checkr    $in           inLen             5 0   
    C                   movea     *blanks       out                     
    C                   move      ''''          out(1)                  
     *                                                                  
    C                   z-add     2             j                 5 0   
    C     $in           cabeq     *blank        leerString              
     *                                                                  
    C     1             do        inLen         i                 5 0   
     *                                                                  
    C                   move      in(i)         out(j)                  
    C     in(i)         ifeq      ''''                                  
    C                   add       1             j                       
    C                   move      in(i)         out(j)                  
    C                   endif                                           
    C                   add       1             j                       
     *                                                                  
    C                   enddo                                           
     *                                                                  
    C     leerString    tag                                             
    C                   move      ''''          out(j)                  
    C                   movea     out           $out                    
     *                                                                  
     *                                                                  
    C                   seton                                        LR 
    C                   return                                          
     *
    Gruß, Christian

Similar Threads

  1. Dynamisches SQL in einem CL erstellen
    By Sony in forum IBM i Hauptforum
    Antworten: 27
    Letzter Beitrag: 20-07-09, 22:48
  2. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 10:43
  3. Hilfestellung bei AS/400 SQL Anweisung
    By Luisfree in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 19-01-05, 18:42
  4. Hilfestellung bei AS/400 SQL Anweisung
    By Luisfree in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 12-10-04, 10:42
  5. Optimierung SQL Anweisung
    By Cassius in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-03-02, 20:28

Berechtigungen

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