>>--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 では、実際にフェッチされた行の数になります。