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)