Page History
[ |../../index.htm#lansa/access_file.htm]
現在地:
...
9.3 ACCESS_FILE
| Note |
|---|
注意 |
...
:9.1 |
...
...
システムの任意のファイルからレコードを読み出します。これには、LANSAで認識されていないファイルを含まれます。
| Warning |
|---|
警告: |
...
このBIFを使用するときは、ファイルまたはメンバーが存在することを確認してください。ファイルまたはメンバーがシステムに存在しないとジョブは失敗します。 |
...
ファイルからレコードを読み取るには、その前にファイルがオープンされている必要があります。 ファイルは一度オープンされると、ファイル/メンバーを変更することはできません。新しいファイル/メンバーにアクセスするには、最初にオープンされているファイル/ |
...
メンバーをクローズする必要があります。 |
...
ライブラリが指定されていない場合は、要求されたファイル名とライブラリ・リストで名前が最初に一致したファイルが使用されます。 メンバーが指定されていない場合は、ファイルの最初のメンバーが使用されます。 |
...
引数
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 必須 | アクション: |
OPEN - ファイルをオープンする |
READ - レコードを読み取る |
CLOSE - ファイルをクローズする | 4 | 5 |
2 | A | 必須 | ファイル名 | 1 | 10 |
3 | A | 任意 | ライブラリ名 | 1 | 10 |
4 | A | 任意 | メンバー名 | 1 | 10 |
...
...
戻り値
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | A | 任意 | 戻りコード |
ER:エラーが発生した
EF:ファイルの終わりに達した
OK -アクションが完了した | 2 | 2 |
2 | A | 任意 | 戻りデータ・ブロック1 | 1 | 256 |
3 | A | 任意 | 戻りデータ・ブロック2 | 1 | 256 |
4 | A | 任意 | 戻りデータ・ブロック3 | 1 | 256 |
5 | A | 任意 | 戻りデータ・ブロック4 | 1 | 256 |
6 | A | 任意 | 戻りデータ・ブロック5 | 1 | 256 |
7 | A | 任意 | 戻りデータ・ブロック6 | 1 | 256 |
8 | A | 任意 | 戻りデータ・ブロック7 | 1 | 256 |
9 | A | 任意 | 戻りデータ・ブロック8 | 1 | 256 |
ファイルのレコード長が256バイトを超える場合は、レコードの1から256バイトまでがデータ・ブロック1で戻され、257から512バイトまでがデータ・ブロック2で、513から768バイトまでがデータ・ブロック3で、という具合に、それぞれ対応するブロックで戻されます。
...
例
...
要求されたファイルおよびメンバーから最初の10レコードを読み取ります。
DEFINE FIELD(#FILENM)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#LIBRARY)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#MEMBER)
...
TYPE(*CHAR)
...
LENGTH(10)
...
DEFINE FIELD(#RETCOD)
...
TYPE(*CHAR)
...
LENGTH(2)
...
DEFINE FIELD(#DATA1)
...
TYPE(*CHAR)
...
LENGTH(256)
**********
...
REQUEST FIELDS(#FILENM #LIBRARY #MEMBER)
USE BUILTIN(ACCESS_FILE)
...
WITH_ARGS(
...
OPEN #FILENM #LIBRARY
#MEMBER) TO_GET(#RETCOD)
...
DOUNTIL COND('(
...
#I *GE 10) *OR (#RETCOD *NE OK)')
USE BUILTIN(ACCESS_FILE)
...
WITH_ARGS(
...
READ #FILENM)
TO_GET(
...
#RETCOD #DATA1)
* < process data1 >
ENDUNTIL
USE BUILTIN(ACCESS_FILE)
...
WITH_ARGS(CLOSE #FILENM....)
...
TO_GET(#RETCOD)
...