バリアントデータ項目は,VARIANT値へのポインタを格納するためのデータ領域である。
- 形式
- 構文規則
- レベル番号は,01〜49または77でなければならない。
- バリアントデータ項目は,作業場所節および連絡節に定義しなければならない。
- バリアントデータ項目は,EXTERNAL句やGLOBAL句を指定したレコード記述中に書いてもよい。
- バリアントデータ項目が独立した基本項目として定義された場合は,EXTERNAL句やGLOBAL句を指定できる。ただし,EXTERNAL句やGLOBAL句を指定できるのは,バリアントデータ項目が作業場所節で定義されている場合だけである。
- バリアントデータ項目にVALUE句を指定してもよい。VALUE句には,表意定数ZEROとNULLが指定できる。VALUE句を指定していない場合の動作は保証しない。
- バリアントデータ項目に関連する条件名が記述できる。ただし,条件名のVALUE句には表意定数ZEROとNULLだけが指定できる。
- USAGE句のVARIANT指定と同時にPICTURE句を指定してはならない。
- バリアントデータ項目を明示的に参照できる個所を次に示す。
・OLE2オートメーションインタフェース機能でのINVOKE文
・OLE2オートメーションインタフェース機能でのSET文
・バリアントデータ比較の条件式
・利用者定義関数の引数
・TYPE-OF-VARIANT関数
・VARIANT-TO-INTEGER関数
・VARIANT-TO-NUMERIC関数
・VARIANT-TO-ALPHANUMERIC関数
・VARIANT-TO-OBJECT関数
・LENGTH-OF-VARIANT関数
- 一般規則
- バリアントデータ項目は内部的に4バイト(64bit版PC(x64) COBOL2002では8バイト)の領域が確保される。
- バリアントデータ項目を指定すると,VARIANT値をCOBOLのデータ項目に変換せずに,そのままVARIANT値として保持できる。また,バリアントデータ項目には,VARIANT値そのものではなく,バリアント値を指すポインタが格納される。
- バリアントデータ項目にSYNCHRONIZED句の機能が適用された場合は4バイト(64bit版PC(x64) COBOL2002では8バイト)境界に割り付けられる。
SYNCHRONIZED句の機能が適用されない場合は,バイト境界に割り付けられる。
- バリアントデータ項目にVARIANT値へのポインタを格納する場合,すでに別のVARIANT値へのポインタが設定されているときは,前に格納されたVARIANT値を解放した後に格納する。
- バリアントデータ項目にEXTERNAL句を指定した場合の注意事項については,マニュアル「COBOL2002 ユーザーズガイド」のVARIANT値とCOBOLデータのやり取りの説明を参照のこと。
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.