FETCH

すべてまたは一部の DataRows カーソルを、ホスト変数またはホスト配列に転送します。

構文:

>>--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 つ以上のホスト変数を指定します。

説明:

この構文は、埋め込み EXEC SQL FETCH 文と似ています。

実行後に、SQLERRD(3) には処理された要素の数が含まれます。FETCH では、実際にフェッチされた行の数になります。

例:

* 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