>>--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 | A host variable that specifies the maximum number of host array elements processed. Must be declared as PIC S9(4) COMP-5 or PIC S9(9) COMP-5. |
| datarows_name | A previously declared and opened DataRows cursor |
| column_list | A list of one or more columns for which data is to be retrieved. The column list determines the order in which values are
received. Items in the column list must be enclosed in parentheses. If no column list is given, all of the columns in the
receiving table (in DECLARE DATATABLE order) are assumed.
The column list is only necessary when some but not all of the columns in the DataRows cursors are to retrieve data. |
| :col_value_hv | Identifies one or more host variables to receive the data from the columns. |
* 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
Comments:
This statement is similar to the embedded EXEC SQL FETCH statement.
After execution, SQLERRD(3) contains the number of elements processed. For FETCH it is the number of rows actually fetched.