COBOL2002 言語 拡張仕様編
- 形式
- 機能
- CONVERT-TO-VARIANT(VARIANT値変換)関数は,引数2で指定したCOBOLのデータ項目と等価な引数1で指定した型のVARIANT値へのポインタを返す。この関数は,OLE2オートメーションインタフェース機能を使ったINVOKE文での引数や,SET文での設定値を,特定の型のVARIANT値として扱う場合に使用する。この関数の型は,バリアントデータ型である。
- 一般規則
- 引数について
・引数1は,整数項目(結果が常に整数となる算術式を含む),整数定数,表意定数ZEROを指定しなければならない。
・引数1は,変換するVARIANT値の型を示す数値を指定しなければならない。指定する数値とVARIANT値との対応を次に示す。
表18-3 指定する数値とVARIANT値との対応
指定する数値 |
VARIANT値の型 |
0 |
Empty(VT_EMPTY) |
1 |
Null(VT_NULL) |
2 |
整数型(VT_I2) |
3 |
長整数型(VT_I4) |
4 |
単精度浮動小数点型(VT_R4) |
5 |
倍精度浮動小数点型(VT_R8) |
6 |
通貨型(VT_CY) |
7 |
日付型(VT_DATE) |
8 |
文字列型(VT_BSTR) |
9 |
オブジェクト型(VT_DISPATCH) |
11 |
ブール型(VT_BOOL) |
決められた数値以外のものが指定されたときの結果は保証しない。
・引数2は,集団項目,数字項目(算術式を含む),数字編集項目,英字項目,英数字項目,日本語項目,1けたのブール項目,OLEオブジェクト参照データ項目,数字定数,英数字定数,日本語文字定数,1けたのブール定数または表意定数(ZERO,NULL)でなければならない。
VARIANT値へ変換できないデータ項目が指定されている場合は,実行時にエラーとなる。
VARIANT値変換では,「表18-1 COBOLデータ項目からVARIANT値への変換規則」に示した変換規則のVARIANT値に合わせてCOBOLデータ項目を指定すること。変換規則で示されていない通貨型,日付型は英数字項目で指定する。なお,日付型は03/01/01 09:00という形式で設定すること。
・引数1に0または1が指定された場合,引数2は無視される。2〜11が指定された場合で,引数2が指定されていないときはエラーとなる。
・-UniObjGenオプションを指定した場合,引数2に用途がNATIONALの項目,日本語文字定数および16進日本語文字定数を指定してはならない。-UniObjGenオプションについては,マニュアル「COBOL2002 ユーザーズガイド」のUnicode機能を参照のこと。
- 関数値について
・関数値は,指定された引数と等価のVARIANT値へのポインタが返される。
- 関数の表現形式
・VARIANT値へのポインタ
・この関数は,(CALL文,INVOKE文(オブジェクト指向機能),利用者定義関数を除く)送り出し側作用対象となるバリアントデータ項目が指定できるところおよびバリアントデータ比較の条件式に記述できる。
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.