Symfoware Parallel Server SQLビギナーズガイド
目次 索引 前ページ次ページ

第7章 応用プログラムの実行時に動的SQL文を実行する方法> 7.3 SQL文の条件を動的に変更して実行する

7.3.4 その他の被準備文を実行する

データの挿入や更新などの操作を動的パラメタ指定を指定して行うには、USINGを指定したEXECUTEを使用します。EXECUTE文で実行できる被準備文は、動的SELECT文以外の準備可能文です。準備可能文の詳細については、“動的SQLの概念”を参照してください。

SQL文変数の内容が準備可能動的UPDATE文(位置づけ)または準備可能動的DELETE文(位置づけ)の場合は、事前に対応するカーソルをオープンしておくことが必要です。また、指定したカーソルは動的カーソルであることが必要です。

動的パラメタ指定のあるUPDATE文(探索)の指定例を以下に示します。なお、SQL記述子域を操作するSQL文の詳細については、“図:SQL記述子域(動的パラメタ指定)を使用した応用プログラムの例”の例を参照してください。

端末から入力したUPDATE文(探索)の例です。端末から入力した動的パラメタ指定の値を設定句としてデータを更新します。

 

                  …                                            
     [端末から入力したUPDATE文(探索)をstrに格納]              
                  …                                            
EXEC SQL PREPARE STMID FROM :str;                               
EXEC SQL ALLOCATE DESCRIPTOR 'INDESC' WITH MAX 100;             
EXEC SQL DESCRIBE INPUT STMID USING SQL DESCRIPTOR 'INDESC';    
EXEC SQL GET DESCRIPTOR 'INDESC' :icount = COUNT;               
for( i = 1; i <= icount; i++ ) {                                
    EXEC SQL GET DESCRIPTOR 'INDESC' VALUE :i  …               
                  …                                            
    [動的パラメタ指定の情報をSQL記述子域から取得]            
                  …                                            
    EXEC SQL SET DESCRIPTOR 'INDESC' VALUE :i  …               
                  …                                            
     [端末から入力した動的パラメタ指定の値をSQL記述子域に設定]
                  …                                            
}                                                               
EXEC SQL EXECUTE STMID USING SQL DESCRIPTOR 'INDESC';           
EXEC SQL DEALLOCATE DESCRIPTOR 'INDESC';                        
EXEC SQL DEALLOCATE PREPARE STMID;                              
                  …                                            

 


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006