Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../index.htm#lansa/access_file.htm]
現在地:

...

9.3 ACCESS_FILE

Note

注意

...

9.1

...

組み込み関数の規則     利用オプション

...

システムの任意のファイルからレコードを読み出します。これには、LANSAで認識されていないファイルを含まれます。 

Warning

警告:

...

このBIFを使用するときは、ファイルまたはメンバーが存在することを確認してください。ファイルまたはメンバーがシステムに存在しないとジョブは失敗します。 

...

ファイルからレコードを読み取るには、その前にファイルがオープンされている必要があります。 

ファイルは一度オープンされると、ファイル/メンバーを変更することはできません。新しいファイル/メンバーにアクセスするには、最初にオープンされているファイル/

...

メンバーをクローズする必要があります。 

...

ライブラリが指定されていない場合は、要求されたファイル名とライブラリ・リストで名前が最初に一致したファイルが使用されます。 

メンバーが指定されていない場合は、ファイルの最初のメンバーが使用されます。

...

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

アクション:

OPEN:

OPEN - ファイルをオープンする

READ:

READ - レコードを読み取る

CLOSE:

CLOSE - ファイルをクローズする

4

5

 

 



2

A

必須

ファイル名

1

10

 

 



3

A

任意

ライブラリ名
デフォルトは*LIBL

1

10

 

 



4

A

任意

メンバー名

1

10



 

...

 

...

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

任意

戻りコード

OK:アクションが完了した
ER:エラーが発生した
EF:ファイルの終わりに達した

OK -アクションが完了した
ER -エラーが発生した
EF -ファイルの終わりに達した

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)

...