>>--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.