Rational Developer for System z
COBOL for Windows バージョン 7.5 言語解説書


OPEN ステートメント

OPEN ステートメントは、ファイルの処理を開始します。 ラベルのチェックまたは書き込み、あるいはその両方を行います。

フォーマット 1: 順次ファイル
構文図を読む構文図をスキップする>>-OPEN--------------------------------------------------------->
 
   .-----------------------------------------------------------.  
   |          .--------------------------------------------.   |  
   V          V                                            |   |  
>----+-INPUT----ファイル名-1--+--------------------------+-+-+-+-><
     |                        |          (1)             |   |    
     |                        +-REVERSED-----------------+   |    
     |                        |                     (1)  |   |    
     |                        '-+------+--NO REWIND------'   |    
     |                          '-WITH-'                     |    
     |         .---------------------------------------.     |    
     |         V                                       |     |    
     +-OUTPUT----ファイル名-2--+---------------------+-+-----+    
     |                         '-+------+--NO REWIND-'       |    
     |                           '-WITH-'                    |    
     |      .--------------.                                 |    
     |      V              |                                 |    
     +-I-O----ファイル名-3-+---------------------------------+    
     |         .--------------.                              |    
     |         V              |                              |    
     '-EXTEND----ファイル名-4-+------------------------------'    
 

注:
  1. REVERSED および WITH NO REWIND 句は 構文チェックされますが、プログラムの実行には何も影響しません。。

フォーマット 2: 索引付きファイルおよび相対ファイル
構文図を読む構文図をスキップする         .------------------------------.  
         |          .--------------.    |  
         V          V              |    |  
>>-OPEN----+-INPUT----ファイル名-1-+--+-+----------------------><
           |         .--------------. |    
           |         V              | |    
           +-OUTPUT----ファイル名-2-+-+    
           |      .--------------.    |    
           |      V              |    |    
           +-I-O----ファイル名-3-+----+    
           |         .--------------. |    
           |         V              | |    
           '-EXTEND----ファイル名-4-+-'    
 

フォーマット 3: 行順次ファイル
構文図を読む構文図をスキップする         .------------------------------.  
         |          .--------------.    |  
         V          V              |    |  
>>-OPEN----+-INPUT----ファイル名-1-+--+-+----------------------><
           |         .--------------. |    
           |         V              | |    
           +-OUTPUT----ファイル名-2-+-+    
           |         .--------------. |    
           |         V              | |    
           '-EXTEND----ファイル名-4-+-'    
 

INPUT、 OUTPUT、I-O、および EXTEND 句は、ファイルのオープンに使用するモードを指定します。 キーワード OPEN と共に、INPUT、OUTPUT、I-O、または EXTEND の各句のうち少なくとも 1 つを指定しなければなりません。INPUT、 OUTPUT、I-O、および EXTEND の句は、任意の順序で指定できます。

INPUT
入力操作を実行できます。
OUTPUT
出力操作を実行できます。この句は、ファイルの作成時に指定することができます。

レコードを含むファイルに対して OUTPUT を指定しないでください。このファイルは新規データに置き換えられます。

I-O
入力操作と出力操作の両方を実行できます。I-O 句は、直接アクセス装置に割り当てられているファイルに対してのみ指定することができます。

I-O 句は行順次ファイルには無効です。

EXTEND
ファイルを追加またはファイルを作成する出力操作を実行できます。

EXTEND 句を順次アクセス・ファイルで使用できるのは、新規データが昇順で作成されている場合だけです。EXTEND 句は、LINAGE 文節が指定されたファイルで使用可能です。

ファイル名-1ファイル名-2ファイル名-3ファイル名-4
OPEN ステートメントによる処理の対象となるファイルを指定します。複数のファイルを指定する場合、それらのファイルは同一の編成やアクセス・モードを持つ必要はありません。各ファイル名は、データ部の FD 項目に定義されていなければならず、また、ソート・ファイルやマージ・ファイルにすることはできません。FD 項目は、ファイルが定義されるときに提供された情報と同じでなければなりません。

REVERSED
REVERSED 句は構文チェックされますが、プログラムの実行には何も影響しません。
NO REWIND
NO REWIND 句は構文チェックされますが、プログラムの実行には何も影響しません。

一般規則

ラベル・レコード

ラベル処理はサポートされていません。以下の言語エレメントのいずれかが検出されると、警告メッセージが出されます。

 

OPEN ステートメントに関する注意事項

  1. OPEN ステートメントが正常に実行されると、そのファイルは使用可能であると判別され、 オープン・モードになります。ファイルが使用できるのは、そのファイルが物理的に存在し、入出力制御システムによって認識されるものである場合です。以下の表は、 使用可能なファイルと使用可能でないファイルに対してオープンを行った結果を示したものです。ファイルの使用可能性の詳細については、「COBOL for Windows プログラミング・ガイド」を参照してください。
    表 48. ファイルの使用可能性
    OPEN の形式 ファイルが 使用可能 ファイルが使用可能でない
    INPUT 通常のオープン オープンに失敗する
    INPUT (オプショナル・ファイル) 通常のオープン 通常のオープン。最初の読み取りにより、終了条件または無効キー条件が生じる
    I-O 通常のオープン オープンに失敗する
    I-O (オプショナル・ファイル) 通常のオープン オープンするとファイルが作成される
    OUTPUT 通常のオープン。ファイルにレコードが入っていない。 オープンするとファイルが作成される
    EXTEND 通常のオープン オープンに失敗する
    EXTEND (オプショナル・ファイル) 通常のオープン オープンするとファイルが作成される
  2. OPEN ステートメントが正常に実行されると、ファイルがオープン状態になり、関連するレコード域はプログラムに対して使用可能になります。
  3. OPEN ステートメントは最初のデータ・レコードを取得または解放しません。
  4. レコード域との間でデータをやり取りできるのは、ファイルがオープン状態になっている場合のみです。
  5. 使用可能な任意の入出力ステートメントを使用する場合も、 その実行前に OPEN ステートメントが正しく実行されていなければなりません (USING 句または GIVING 句付きの SORT や MERGE ステートメントを除く)。 以下の表では、'X' はステートメントが、最上段に示されているオープン・モードで使用できることを意味しています。

表 49. 順次ファイルで使用可能なステートメント
ステートメント 入力オープン・モード 出力オープン・モード I-O オープン・モード 拡張オープン・モード
READ X   X  
WRITE   X   X
REWRITE     X  

以下の表では、'X' は、その行に示されているアクセス・モードで使用されると、 上段に示されたオープン・モードで使用できることを意味します。

表 50. 索引付きファイルと相対ファイルで使用可能なステートメント
ファイル・アクセス・モード ステートメント 入力オープン・モード 出力オープン・モード I-O オープン・モード 拡張オープン・モード
順次 READ X   X  
WRITE   X   X
REWRITE     X  
START X   X  
DELETE     X  
ランダム READ X   X  
WRITE   X X  
REWRITE     X  
START        
DELETE     X  
動的 READ X   X  
WRITE   X X  
REWRITE     X  
START X   X  
DELETE     X  

以下の表では、'X' はステートメントが、最上段に示されているオープン・モードで使用できることを意味しています。

表 51. 行順次ファイルで使用可能なステートメント
ステートメント 入力オープン・モード 出力オープン・モード I-O オープン・モード 拡張オープン・モード
READ X      
WRITE   X   X
REWRITE        
  1. 同一プログラムの中で、1 つのファイルを INPUT、OUTPUT、I-O、または EXTEND (順次ファイルおよび行順次ファイルのみ) としてオープンすることができます。該当のファイルに対する最初の OPEN ステートメントの実行後、それ以降の各 OPEN ステートメントを実行するたびに、その前に LOCK 句指定のない CLOSE ファイル・ステートメントを実行しなければなりません。
  2. ファイル制御項目内に FILE STATUS 文節が指定されている場合は、 関連するファイル状況キーが、OPEN ステートメントの実行時に更新されます。
  3. すでにオープン状態になっているファイルに対して OPEN ステートメントを発行すると、 そのファイルに対して EXCEPTION/ERROR プロシージャーが指定されていれば、それが実行されます。

ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)