COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

18.2.2 バリアントデータ項目(OLE2オートメーションインタフェース機能)

バリアントデータ項目は,VARIANT値へのポインタを格納するためのデータ領域である。

形式
[図データ]

構文規則
  1. レベル番号は,01〜49または77でなければならない。
  2. バリアントデータ項目は,作業場所節および連絡節に定義しなければならない。
  3. バリアントデータ項目は,EXTERNAL句やGLOBAL句を指定したレコード記述中に書いてもよい。
  4. バリアントデータ項目が独立した基本項目として定義された場合は,EXTERNAL句やGLOBAL句を指定できる。ただし,EXTERNAL句やGLOBAL句を指定できるのは,バリアントデータ項目が作業場所節で定義されている場合だけである。
  5. バリアントデータ項目にVALUE句を指定してもよい。VALUE句には,表意定数ZEROとNULLが指定できる。VALUE句を指定していない場合の動作は保証しない。
  6. バリアントデータ項目に関連する条件名が記述できる。ただし,条件名のVALUE句には表意定数ZEROとNULLだけが指定できる。
  7. USAGE句のVARIANT指定と同時にPICTURE句を指定してはならない。
  8. バリアントデータ項目を明示的に参照できる個所を次に示す。
    ・OLE2オートメーションインタフェース機能でのINVOKE文
    ・OLE2オートメーションインタフェース機能でのSET文
    ・バリアントデータ比較の条件式
    ・利用者定義関数の引数
    ・TYPE-OF-VARIANT関数
    ・VARIANT-TO-INTEGER関数
    ・VARIANT-TO-NUMERIC関数
    ・VARIANT-TO-ALPHANUMERIC関数
    ・VARIANT-TO-OBJECT関数
    ・LENGTH-OF-VARIANT関数

一般規則
  1. バリアントデータ項目は内部的に4バイト(64bit版PC(x64) COBOL2002では8バイト)の領域が確保される。
  2. バリアントデータ項目を指定すると,VARIANT値をCOBOLのデータ項目に変換せずに,そのままVARIANT値として保持できる。また,バリアントデータ項目には,VARIANT値そのものではなく,バリアント値を指すポインタが格納される。
  3. バリアントデータ項目にSYNCHRONIZED句の機能が適用された場合は4バイト(64bit版PC(x64) COBOL2002では8バイト)境界に割り付けられる。
    SYNCHRONIZED句の機能が適用されない場合は,バイト境界に割り付けられる。
  4. バリアントデータ項目にVARIANT値へのポインタを格納する場合,すでに別のVARIANT値へのポインタが設定されているときは,前に格納されたVARIANT値を解放した後に格納する。
  5. バリアントデータ項目にEXTERNAL句を指定した場合の注意事項については,マニュアル「COBOL2002 ユーザーズガイド」のVARIANT値とCOBOLデータのやり取りの説明を参照のこと。