>>--EXEC ADO--.-------------------.----------------->
+-FOR :host_integer-+
>-FETCH-------.----------.---.----------.—VALUES--->
+---SAME---+ +-CURRENT--+
+---LAST---+ +-DEFAULT--+
+---PRIOR--+ +-ORIGINAL-+
+---FIRST--+ +-PROPOSED-+
+---NEXT---+
>--.------.—-datarows_name--.---------------.------>
+-FROM-+ +-(column_list)-+
>--.--------------------------------.---END-EXEC---><
| +--- , -----+ |
| V | |
+-INTO :col_value_hv-------------+
| :host_integer | 処理されるホスト配列要素の最大数を指定するホスト変数。PIC S9(4) COMP-5 または PIC S9(9) COMP-5 として宣言する必要があります。 |
| datarows_name | 以前に宣言され、開かれた DataRows カーソル。 |
| column_list | データを取り込む 1 つ以上の列のリスト。列リストによって、値を取り込む順序が決定されます。列リスト内の項目はかっこで囲む必要があります。列リストを指定しない場合は、受け取るテーブルにあるすべての列 (DECLARE DATATABLE の順序で) を受け取るものとみなされます。 列リストが必要なのは、DataRows カーソルにある一部の列 (すべての列ではなく) がデータを受け取る場合のみです。 |
| :col_value_hv | 列からデータを受け取る 1 つ以上のホスト変数を指定します。 |
* Declare a cursor for a given SQL statement.
EXEC ADO
DECLARE drCust DATAROWS FROM Customers
END-EXEC
EXEC ADO OPEN drCust END-EXEC
* Fetch the current values from the cursor into the host variables
* and if everything goes ok, display the values of the host
* variables
PERFORM UNTIL EXIT
EXEC ADO
FETCH NEXT drCust (CustomerID, CompanyName)
INTO :Customers-CustomerID, :Customers-CompanyName
END-EXEC
IF SQLCODE < 0 or SQLCODE = 100
EXIT PERFORM
END-IF
DISPLAY "Customer ID = " Customers-CustomerID " Company Name = " Customers-CompanyName
END-PERFORM
説明:
この構文は、埋め込み EXEC SQL FETCH 文と似ています。
実行後に、SQLERRD(3) には処理された要素の数が含まれます。FETCH では、実際にフェッチされた行の数になります。