RPG と SQL のあれこれ (動的 SQL)

動的 SQL のやり方、ということでこちらをちょっと強引に動的 SQL に書き換えてみました。

H DFTACTGRP(*NO)                                                   
D CustRow       E DS                  ExtName(QCUSTCDT) Qualified   
D LastName      E                     EXTFLD(LstNam)               
 *                                                                 
D State           S              2A                                 
D SQLstmt         S            500A   INZ('SELECT * -               
D                                     FROM QIWS/QCUSTCDT -         
D                                     WHERE STATE = ?')             
 /Free                                                             
        EXEC SQL    PREPARE Stmt1 FROM :SQLstmt ;                   
        EXEC SQL    DECLARE CustCSR  Cursor For Stmt1 ;             
                                                                    
    State = 'MN' ;                                                 
                                                                    
        EXEC SQL    OPEN CustCSR USING :State;                     
                                                                    
        EXEC SQL    FETCH NEXT FROM CustCSR INTO :CustRow ;   
                                                              
     If %Subst(SQLSTT:1:2) = '00' ;                           
          DSPLY CustRow.LastName ;                           
       Else ;                                                 
          DSPLY SQLERR ;                                     
          Leave ;                                             
     EndIf ;                                                 
                                                              
    EndDo ;                                                   
                                                              
        EXEC SQL    CLOSE CustCSR ;                           
                                                              
    *inlr = *on ;                                             
    return ;                                                 
 /End-Free

[Top Pageに戻る]

Ads by TOK2