18.1.2 VARIANT値とCOBOLデータの変換規則(OLE2オートメーションインタフェース機能)
(1) COBOLデータからVARIANT値への変換規則
OLEメソッドに渡す引数やOLEプロパティへの設定で指定されたCOBOLのデータ項目は,次に示す変換規則に従って暗黙的にVARIANT値に変換される。
COBOLデータ項目 |
VARIANT値※5 |
---|---|
表意定数(NULL) |
VT_NULL(1) |
2進項目※1,外部10進項目※1,内部10進項目※1,数字定数※1,表意定数(ZERO) |
VT_I2(2) |
2進項目※2,外部10進項目※2,内部10進項目※2,数字定数※2 |
VT_I4(3) |
単精度内部浮動小数点項目 |
VT_R4(4) |
倍精度内部浮動小数点項目,外部浮動小数点項目,浮動小数点定数,2進項目※3,外部10進項目※3,内部10進項目※3, 数字定数※3 |
VT_R8(5) |
英字項目,英数字項目,英数字定数,固定長集団項目(日本語集団項目を含む),可変長集団項目,日本語項目,日本語文字定数,数字編集項目 |
VT_BSTR(8) |
OLEオブジェクト参照データ項目 |
VT_DISPATCH(9) |
内部ブール項目※4,外部ブール項目※4,ブール定数※4 |
VT_I2→VT_BOOL(11) |
- 注1
-
組み込み関数のCONVERT-TO-VARIANT関数での明示的な変換も,いったん上表の変換規則に従ったVARIANT値に変換し,さらに目的のVARIANT値へと変換する。
- 注2
-
オブジェクト参照データ項目,アドレスデータ項目および指標データ項目は,バリアントデータ型には変換できない。
- 注※1
-
4けたまでの小数けたなし項目。
- 注※2
-
9けたまでの小数けたなし項目。
- 注※3
-
10けたを超えるまたは小数けたがある項目。
- 注※4
-
1けたの項目。
- 注※5
-
括弧内の数字はVARIANTのタイプを示す。
(2) VARIANT値からCOBOLデータへの変換規則
OLEメソッドの戻り値やOLEプロパティの取得で受け取ったVARIANT値は,次に示す変換規則に従って暗黙的にCOBOLのデータ項目に変換される。
VARIANT値※5 |
COBOLデータ項目 |
---|---|
VT_I2(2) |
2進項目※1,外部10進項目※1,内部10進項目※1 |
VT_I4(3) |
2進項目※2,外部10進項目※2,内部10進項目※2 |
VT_R4(4) |
単精度内部浮動小数点項目 |
VT_R8(5) |
倍精度内部浮動小数点項目,外部浮動小数点項目,2進項目※3,外部10進項目※3,内部10進項目※3 |
VT_BSTR(8) |
英字項目,英数字項目,固定長集団項目(日本語集団項目を含む),可変長集団項目,日本語項目 |
VT_DISPATCH(9) |
OLEオブジェクト参照データ項目 |
VT_BOOL(11)→VT_I2 |
内部ブール項目※4,外部ブール項目※4 |
- 注1
-
組み込み関数のVARIANT値からCOBOLデータ項目への明示的な変換も,いったん上表の変換規則に従ったVARIANT値に変換し,さらに目的のCOBOLデータ項目へと変換する。なお,変換元となる文字の右側に存在する空白は無視される。
- 注2
-
文字列変換(VT_BSTR型)の場合,データは常に左端をそろえて収められる。データを設定する領域が小さい場合は右端が切り捨てられる。しかし,大きい場合の空白詰めは行われない。JUSTIFIED句は適用されない。なお,変換元となる文字の右側に存在する空白は無視される。
- 注3
-
バリアントデータ型からオブジェクト参照データ項目,アドレスデータ項目および指標データ項目には変換できない。
- 注※1
-
4けたまでの小数けたなし項目。
- 注※2
-
9けたまでの小数けたなし項目。
- 注※3
-
10けたを超えるまたは小数けたがある項目。
- 注※4
-
1けたの項目。
- 注※5
-
括弧内の数字はVARIANTのタイプを示す。