ILE COBOL 解説書

CALL ステートメントの考慮事項

呼び出し ID

CALL ID (この場合の ID はプロシージャー・ポインターではない) を使用すれば、 ネストされた ILE COBOL プログラムまたはプログラム・オブジェクトを呼び出すことができます。 ID の内容は実行時に、呼び出されたのがネストされたプログラムか、それともプログラム・オブジェクトかを識別します。

ID をオブジェクトに関連付ける、オープン・ポインターは、その ID を CALL ステートメントで最初に使用する際に設定されます。

あるプログラム・オブジェクトを指す ID を用いて呼び出しを実行し、 後でそのプログラムを削除または名前変更する場合は、CANCEL ステートメントを使用して、その ID に関連付けられているオープン・ポインターをヌルにする必要があります。 これにより、次回、ID を使用してプログラム・オブジェクトを呼び出す際に、関連付けられたオープン・ポインターを設定しなおすことができます。

オープン・ポインターの値は、ID の値を変更してこの新しい値を使用する呼び出しを実行すると、変更されます。

CALL プロシージャー・ポインター

CALL プロシージャー・ポインター・ステートメントを使用すれば、静的プロシージャー呼び出しや動的プログラム呼び出しを実行できます。

CALL プロシージャー・ポインター・ステートメントを使用する前に、 形式 6 の SET ステートメントを使用してプロシージャー・ポインター のデータ項目の値を設定する必要があります。 プロシージャー・ポインター・データ項目を ILE プロシージャーに設定するには、SET ステートメントに LINKAGE TYPE IS PROCEDURE を指定します。 プロシージャー・ポインター・データ項目をプログラム・オブジェクトに設定するには、LINKAGE TYPE IS PROGRAM を指定します。

さらに、SPECIAL-NAMES 段落の LINKAGE TYPE 文節、 あるいは CRTCBLMOD または CRTBNDCBL コマンドの LINKLIT パラメーターを使用して、プロシージャー・ポインター のデータ項目がどのタイプのオブジェクトに設定されているかを見分けることができます。 LINKAGE TYPE 文節の使用方法については LINKAGE TYPE 文節を、また LINKLIT パラメーターの使用方法については、「WebSphere Development Studio: ILE COBOL プログラマーの手引き」を参照してください。

パラメーターの長さ

呼び出し側プログラムに定義されるいずれかのパラメーターの長さ (バイト単位) が、呼び出し先プログラムの予期する長さと一致しない場合、 呼び出し側プログラムや呼び出し先プログラムで予期しない結果が生じる可能性があります。 詳細は、「WebSphere Development Studio: ILE COBOL プログラマーの手引き」の『プログラム間のデータの受け渡しと共用』のセクションを 参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]