ファイル・アクセスの例を次に示します。
try open record1 forUpdate; onException myErrorHandler(8); return; end try get next record1; onException myErrorHandler(12); return; end while (record1 not endOfFile) makeChanges(record1); // レコードのプロセス try replace record1; onException myErrorHandler(16); return; end try get next record1; onException myErrorHandler(12); return; end end // end while sysLib.commit();
get next 文の詳細は、レコード・タイプによって異なります。SQL 処理の詳細については、『SQL 処理』を参照してください。
1, 2, 2, 2, 3, 4
以下の各表は、同じ索引付きレコードに対して一連の EGL ステートメントを実行する場合の効果を示しています。
次に示す 2 つの表は、EGL で生成された COBOL コードに適用されます。
EGL ステートメント (実行順) | 索引付きレコード内のキー | 文によって検索されるファイル・レコード内のキー | COBOL の場合の EGL エラー値 |
---|---|---|---|
get | 2 | 2 (3 つある内の最初のもの) | duplicate |
get next | any | 3 | ― |
EGL ステートメント (実行順) | 索引付きレコード内のキー | 文によって検索されるファイル・レコード内のキー | COBOL の場合の EGL エラー値 |
---|---|---|---|
set record position 書式の set | 2 | 検索されない | duplicate |
get next | any | 2 (3 つある内の最初のもの) | duplicate |
get next | any | 2 (2 番目のもの) | duplicate |
get next | any | 2 (3 番目のもの) | ― |
get next | any | 3 | ― |
次に示す 2 つの表は、EGL で生成された Java™ コードに適用されます。
EGL ステートメント (実行順) | 索引付きレコード内のキー | 文によって検索されるファイル・レコード内のキー | Java の場合の EGL エラー値 |
---|---|---|---|
get | 2 | 2 (3 つある内の最初のもの) | duplicate |
get next | any | 2 (2 番目のもの) | duplicate |
get next | any | 2 (3 番目のもの) | ― |
get next | any | 3 | ― |
EGL ステートメント (実行順) | 索引付きレコード内のキー | 文によって検索されるファイル・レコード内のキー | Java の場合の EGL エラー値 |
---|---|---|---|
set record position 書式の set | 2 | 検索されない | duplicate |
get next | any | 2 (3 つある内の最初のもの) | ― |
get next | any | 2 (2 番目のもの) | duplicate |
get next | any | 2 (3 番目のもの) | ― |
get next | any | 3 | ― |
get next が MQ レコードに対して操作を行う場合は、キュー内の最初のレコードが MQ レコードに読み込まれます。この追加処理は、get next で、以下に示す 1 つ以上の MQSeries® 呼び出しが呼び出されることによって行われます。
複数のプログラムで同時に同じファイルが開かないようにしておくことをお勧めします。
制限: CICS® for z/OS® では、同じスプール・ファイルに関する add 文と get next 文を組み合わせて 1 つのプログラムに組み込むことはできません。この制限は、get next 文と add 文が別々のプログラムにあり、一方のプログラムが他方のプログラムを呼び出す場合にも適用されます。
SQL FETCH ステートメントは、生成されたコードでは EGL get next ステートメントを表します。生成される SQL ステートメントの形式は、INTO 文節の設定以外は変更できません。
最終的に、SQL COMMIT または sysLib.commit が指定された場合、open ステートメントで hold オプションを使用したときにのみ、open ステートメントで宣言されていたカーソル内の位置がコードにより保存されます。
関連する概念
レコード・タイプとプロパティー
resultSetID
SQL サポート
関連するタスク
EGL ステートメントおよびコマンドの構文図