最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

7.23.組み込みSQLの例2

[ Previous ] [ HOME ] [ Upper ] [ Next ]


組み込みSQLの例2

ソースタイプは SQLRPGLE です。

FQPRINT    O    F  132        PRINTER                                   
                                                                        
D SQL             S            400                                      
D FILE            S             10    INZ('QRPGSRC   ')                 
D ZERO            S              6  0 INZ(000000)                       
D DS1           E DS                  EXTNAME(QRPGSRC)                  
                                                                        
C                   EXCEPT    HED                                       
 *                                                                      
 * SQL 文の作成                                                         
 *                                                                      
C                   EVAL      SQL = 'SELECT * FROM ' + FILE + ' +        
C                             WHERE SRCDAT = ?'                          
 *                                                                      
 * SQL エラーモニター                                                   
 *                                                                      
C/EXEC SQL                                                              
C+         WHENEVER SQLERROR GOTO ERROR                                 
C/END-EXEC                                                              
 *                                                                      
 *  SQL動的準備                                                         
 *                                                               
C/EXEC SQL                                                       
C+         PREPARE P1 FROM :SQL                                  
C/END-EXEC                                                       
 *                                                               
 *  カーソルの定義                                               
 *                                                               
C/EXEC SQL                                                       
C+         DECLARE C1 CURSOR FOR P1                              
C/END-EXEC                                                       
 *                                                               
 *  カーソルのオープン                                           
 *                                                               
C/EXEC SQL                                                       
C+         OPEN C1 USING :ZERO                                   
C/END-EXEC                                                       
 *                                                               
 *  データの処理                                                 
 *                                                               
C                   DOW       SQLCOD = 0                         
 *                                                                   
 *  カーソルで行を取り出す                                           
 *                                                                   
C/EXEC SQL                                                           
C+         FETCH C1   INTO :DS1                                      
C/END-EXEC                                                           
                                                                     
C                   IF        (SQLCOD >= 0) AND (SQLCOD <> 100)      
C                   EXCEPT    DTL                                    
C                   ENDIF                                            

C                   ENDDO                                            
 *                                                                   
 *  カーソルのクローズ                                               
 *                                                                   
C/EXEC SQL                                                           
C+         CLOSE C1                                                  
C/END-EXEC                                                           
                                                                     
C                   GOTO      FINISH                           
                                                                
C     ERROR         TAG                                        
C     SQLCOD        DSPLY                                      
                                                                
C     FINISH        TAG                                        
C                   MOVE      *ON           *INLR              
C                   RETURN                                     
OQPRINT    E            HED             001                          
O          E            DTL       001                                
O                       SRCSEQ           +   1                       
O                       SRCDAT           +   1                       
O                       SRCDTA           +   1                       

 

ポイント

SQLという変数に、SQL文を作っていますが、上記の「FILE」を文の中に入れこんでしまう方法と、パラメータマーカ(クエスチョンマーク)をつけておき、OPEN文の中でUSING句をつかうことで、パラメータを渡せます。

WHENEVERは、CLPで言うところのプログラムレベルモニターメッセージです。しかし、GOTOか、継続(エラーの無視)しか指定は出来ません。

 


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

海外旅行保険の加入はコチラ! 海外旅行保険の加入はコチラ! 低金利でお得なローン探し
[PR] | 花粉症債務整理中国SEO対策消費者金融SEO車 買取テンプレート沖縄旅行免許合宿二輪引越しプレゼントゴルフ会員権留学レーシックマッサージFX投資信託くりっく365アフィリエイトFXホームページ制作デイトレードハワイ旅行タイバンコクハワイ レンタカーベスト ハワイ ホテル レーツバリ島Hawaii hotelsHawaii Activitiesbhhrハワイホテルテキスト広告
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行 - タイムシェア - ホテル 予約
無料ホームページ - 携帯ホームページ - 無料ホームページ作成 - レンタルサーバー - ブログ - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル - プーケット ホテル - 海外旅行 - 格安国際電話 - レップチェッカー - ホノルルマラソン - サイトパトロール - 誹謗中傷 - 学校裏サイト監視