RPG と SQL のあれこれ (外部データ構造の配列とカラム名の個別変更)

こちらで外部データ構造を使用してみましたが、それを一つの行とした配列として使用することもできます。(V5R2 以降)

↑のプログラムをちょっとだけ直してみました。
10 行のみ FETCH して、10個の外部データ構造の配列に格納してみています。

また、外部データ構造で定義をもってきた SQL テーブルについて EXTFLD キーワードを使用することによって、カラム個別に別の名前を指定することもできます。
よりわかりやすい名前に定義し直すこともできますね。

D CustRow       E DS                  ExtName(QCUSTCDT) Qualified               
D                                     DIM(10)                                   
 *                                                                              
D LastName      E                     EXTFLD(LstNam)                            
 *                                                                              
D i               S              2  0                                           
 *                                                                              
 /Free                                                                          
        EXEC SQL    DECLARE CustCSR  Cursor For                                 
                      SELECT * FROM QIWS/QCUSTCDT ;                             
                                                                                
        EXEC SQL    OPEN CustCSR ;                                              
                                                                                
        EXEC SQL    FETCH CustCSR FOR 10 ROWS                                   
                      INTO :CustRow ;                                           
                                                                                
        for i = 1 to %elem(CustRow) ;                                           
          DSPLY CustRow(i).LastName ;                                           
        Endfor ;                                                                
                                                                                             
        EXEC SQL    CLOSE CustCSR ;                                                          
                                                                                             
        *inlr = *on ;                                                                        
        return ;                                                                             
 /End-Free

[Top Pageに戻る]

Ads by TOK2