DBFFETは、DBCHCLのFetch関数です。
DBFFETは、応答の次のパーセルを指すポインタを引き渡します。
どのように機能するか
- リクエストがまだ活動状態であれば、リクエストが完了するまで待ちます。
- アプリケーションでオプションの更新を要求していた場合には、オプションの設定/検証ロジックを実行します。
- 最初に呼び出されたFETであれば、最初のパーセルにアクセスします。
- 二重バッファが設定されており現在のバッファが最後のバッファでなければ、2番目のバッファに継続リクエストを送ります。
- 次の出力データを返します。
- バッファ モードであれば、DBFFETは必然的に位置付けモードなので、次のバッファを指すポインタを返します。
- パーセル モードの場合には、次のパーセルを返します。
- バッファを使い果たした場合には、そのことを示す戻りコードを設定します。
- DBFFETは、応答の次の単位(パーセルまたはバッファ)を指すポインタを引き渡します。
- 移動モードの場合には、DBFFETは、パーセルを応答バッファからアプリケーション プログラムで指定した場所に移動させます。
取り出しの実行依頼
- DBFFET関数のDBCHCLを呼び出します。
- その戻りコードがゼロであることを確認します。
成功する取り出し操作
- DBFFET関数のDBCHCLを呼び出します。
- その戻りコードがゼロであることを確認します。
- Move Modeの場合は、そのFetch Error Indicatorがゼロであることを確認します。
パーセル モードの場合には、そのパーセルがErrorまたはFailureパーセルではないことを確認し、パーセル内の情報を「消費」します。
バッファ モードの場合には、そのパーセルがErrorまたはFailureパーセルではないことを確認し、パーセル内の情報を「消費」します。
- バッファ内のパーセルごとに確認と「消費」のステップを繰り返します。
モードの組み合わせ
- 位置付けモードとパーセル モード
アプリケーション プログラムでは、DBFFET関数のDBCHCLを呼び出すたびに、パーセルを応答バッファ内に残し(位置付けモード)、次のパーセルのアドレスを入手(パーセル モード)できます。
- 位置付けモードとバッファ モード
アプリケーション プログラムでは、DBFFET関数のDBCHCLを呼び出すたびに、パーセルを応答バッファ内に残し(位置付けモード)、バッファ全体のアドレスを入手(バッファ モード)できます。 そのあとで、必要に応じて、アプリケーション プログラムでパーセルを分ける必要があります。
- 移動モードとパーセル モード
アプリケーション プログラムでは、DBFFET関数のDBCHCLを呼び出すたびに1パーセルずつ(パーセル モード)、応答バッファから移動領域にコピーさせる(移動モード)ことができます。 この方法がアプリケーション プログラムにとって非常に便利な点は、移動領域のための余分なスペースおよびパーセルのコピーのためにDBCHCLが費やす余分な時間が少ないことです。
- 移動モードとバッファ モード
アプリケーション プログラムでは、完全な応答バッファを移動領域にコピーさせる(移動モード)ことができます。 DBCHCLはDBFFETに対して呼び出されます。 この方法は、アプリケーション プログラムが処理スペースに完全な応答バッファをコピーさせる必要のある場合にのみ使用します。 移動領域のための余分なスペースおよびパーセルのコピーのためにDBCHCLが費やす余分な時間が必要であるため、パフォーマンスが低下することが考えられます。
インターフェース
DBFFETインターフェースは、次のとおりです。
関数: | DBFFET - Fetch |
目的: | 次のパーセルの取り出し(SQLの'FETCH'に類似) |
パラメータ: |