EXECUTE PREPARED コマンドを使って、UPDATE、INSERT、DELETE のいずれかのステートメントを実行できます。
SET PARAMETER(*LIST) コマンドを使って、バインドされた値の作業リストを事前に準備されたステートメントに引き渡します。この事前準備されたステートメント (UPDATE、INSERT または DELETE) は作業リスト内の各レコードに対して実行されます。
非常に大きな SQL ステートメントを使用する場合、SET PARAMETER(*SQL) コマンドでステートメントを準備した後、EXECUTE PREPARED(*SQLPARAMETER) コマンドを使用するという選択もあります。
事前準備された SQL ステートメントが INSERT で始まり、VALUES(*CALC) または VALUES(*ALL) で終わる場合、SQL ステートメントの特殊な解析が行われます。*CALC オプションでは、列のバインド・パラメータが計算され、ステートメントが修正されます。*ALL オプションの場合、各列のバインド・パラメータが計算され、テーブルのその他の列はデフォルト値を使用して挿入されます。
構文:
コマンド | キーワード | 値 | 開発者用メモ |
|---|---|---|---|
EXECUTE | PREPARED | ステートメント | 必須。SELECT、UPDATE、INSERT または DELETE ステートメントを実行します。 |
*SQLPARAMETER | SET コマンドで PARAMETER(*SQL) キーワードを使って事前に準備された SQL ステートメントを実行します。 |
例
SET PARAMETER(*SQL) #WRKLST(TXT)SET PARAMETER(*LIST) #WRKLST(column,column,column)EXECUTE PREPARED(*SQLPARAMETER)GET OBJECT(*PARAMETERLISTROW) SET PARAMETER(*LIST) #WRKLST(NAME,ID)EXECUTE PREPARED(UPDATE EMPLOYEE SET NAME=? WHERE ID=?)GET OBJECT(*PARAMETERLISTROW) SET PARAMETER(*LIST) #WRKLST(ID)EXECUTE PREPARED(DELETE FROM EMPLOYEE WHERE ID=?)GET OBJECT(*PARAMETERLISTROW) SET PARAMETER(*LIST) #WRKLST(ID,NAME,AGE)EXECUTE PREPARED("INSERT INTO EMPLOYEE(ID,NAME,AGE) VALUES(?,?,?)")GET OBJECT(*PARAMETERLISTROW) SET PARAMETER(*LIST) #WRKLST(ID,NAME,AGE)EXECUTE PREPARED("INSERT INTO EMPLOYEE(ID,NAME,AGE) VALUES(*CALC)")GET OBJECT(*PARAMETERLISTROW) SET PARAMETER(*LIST) #WRKLST(ID,NAME,AGE)EXECUTE PREPARED("INSERT INTO EMPLOYEE(ID,NAME,AGE) VALUES(*ALL)")GET OBJECT(*PARAMETERLISTROW)