COBOLでは、CORBAのデータ型を扱うために、以下の登録集を提供します。
文字定数用:CONST.cbl
SYMBOL IC CONSTANT用:SYMBOL-CONST.cbl
その他データ型:データ型名.cbl
データ型のCOBOLでの定義を以下に示します。
CORBAデータ型 | COBOLでの定義 | 備考 | |||
---|---|---|---|---|---|
基本データ型 | 整数型 | long | CORBA-LONG | PIC S9(9) COMP-5. |
|
short | CORBA-SHORT | PIC S9(4) COMP-5. |
| ||
unsigned long | CORBA-UNSIGNED-LONG | PIC 9(9) COMP-5. |
| ||
unsigned short | CORBA-UNSIGNED-SHORT | PIC 9(4) COMP-5. |
| ||
long long | CORBA-LONG-LONG | PIC S9(18) COMP-5. |
| ||
浮動小数点型 | float | CORBA-FLOAT | COMP-1. |
| |
double | CORBA-DOUBLE | COMP-2. |
| ||
文字型 | char | CORBA-CHAR | PIC X(1). |
| |
オクテッド | octet | CORBA-OCTET | PIC 9(4) COMP-5. |
| |
ブーリアン | boolean | CORBA-BOOLEAN | PIC 9(9) COMP-5. |
| |
文字列型 | string |
| PIC X(n). | “6.8.1 文字列型”参照 | |
wstring |
| PIC N(n). | “6.8.2 ワイド文字列型”参照 | ||
列挙型 | enum | CORBA-ENUM | PIC 9(9) COMP-5. |
| |
any型 | any |
| 集団項目 | “6.8.3 any型”参照 | |
シーケンス型 | sequence |
| OCCURS句 | “6.8.4 シーケンス型”参照 | |
構造体 | struct |
| 集団項目 | “6.8.5 構造体”参照 | |
共用体 | union |
| REDEFINES文節 | “6.8.6 共用体”参照 | |
固定小数点型 | fixed |
| PIC xx(n) PACKED-DECIMAL. | “6.8.7 固定小数点型”参照 | |
配列 | array |
| OCCURS句 | “6.8.8 配列”参照 | |
オブジェクトリファレンス | Object | CORBA-OBJECT | USAGE POINTER |
| |
タイプコード | TypeCode | CORBA-TYPECODE | USAGE POINTER |
|
注意
整数型を扱う場合
CORBA-SHORT、CORBA-UNSIGNED-SHORTで扱う値は2バイトで管理されますが、そのまま表示すると4桁以上の値は表示されません。符号を含めて4桁以上の値を表示する場合は、いったんCORBA-LONGなどの変数に代入してから扱ってください。
また、5桁以上の値が代入されていると、コンパイル時に桁あふれの警告が表示されます。5桁以上の値を使用する場合は、CORBA-LONG型を使用してください。
同様に、CORBA-LONG、CORBA-UNSIGNED-LONGに対して9桁以上の値を代入する場合は、桁あふれになるので注意してください。
共用体の翻訳時の注意事項
共用体のメンバにデータの長さの異なるものが存在した場合、COBOL翻訳時に、JMN2232I-Wのメッセージが表示されます。
CORBAサービスでは、共用体のサンプルとしてlong型とstring型の長さの異なるサンプルを提供しています。このサンプルの翻訳時に、JMN2232I-Wのメッセージが出力されます。