DataRows カーソルの使用によって最後にフェッチされた DataRow を削除します。
構文:
>>-EXEC ADO-.--------------------.--UPDATE-datatable_name---->
+-USING dataset_name-+
+----------- , -----------+
V |
>--SET---column_name = -+- :hvar-----+----------------------->
-+- col_value-+
>--WHERE CURRENT OF--datarows_name---END-EXEC----------------><
パラメーター:
dataset_name |
使用する DataSet 参照。dataset_name を指定しない場合は、現在の DataSet が使用されます。 |
datatable_name |
更新する DataTable の名前。 |
column_name |
更新する列。 |
hvar |
列値を含むホスト変数。 |
col_value |
列値。 |
datarows_name |
宣言後に開かれ、取り込まれた DataRows カーソル。 |
例:
* Declare the cursor
EXEC ADO
DECLARE c1 DATAROWS FROM oline
END-EXEC
* Open the cursor
EXEC ADO
OPEN c1
END-EXEC
* Modify the table using positioned updates and deletes
PERFORM UNTIL EXIT
* Delete row 1, 4, 7, ...
EXEC ADO FETCH c1 INTO :oline END-EXEC
IF SQLCODE NOT = 0
EXIT PERFORM
END-IF
EXEC ADO DELETE FROM oline WHERE CURRENT OF c1 END-EXEC
* Update row 2, 5, 8, ...
EXEC ADO FETCH c1 INTO :oline END-EXEC
IF SQLCODE NOT = 0
EXIT PERFORM
END-IF
MOVE 99 TO qty
EXEC ADO UPDATE oline SET qty = :qty WHERE CURRENT OF c1 END-EXEC
* Leave alone row 3, 6, 9, ...
EXEC ADO FETCH c1 INTO :oline END-EXEC
IF SQLCODE NOT = 0
EXIT PERFORM
END-IF
END-PERFORM
説明:
EXEC ADO は、位置指定更新をサポートします。ただし、すべての ADO.NET データ プロバイダーが、位置指定更新をサポートするわけではありません。
ADO.NET データ プロバイダーによっては、カーソルが使用する SELECT 文に、位置指定更新を有効にする FOR UPDATE 句を含める必要があります。
EXEC ADO 文で使用されるもう 1 つの形式の UPDATE は、検索更新と呼ばれます。
位置指定更新ではホスト配列を使用できません。
ほとんどのデータ ソースでは、特定の組み合わせの SCROLLOPTION と CONCURRENCY を SET 文または DECLARE CURSOR 文で指定する必要があります。