操作記述子
プロシージャーにパラメーターを渡すことは必要ですが、それでも呼び出され たプロシージャーにデータ・タイプの詳細がわからない場合 (例えば、別の タイプのストリングなど) があります。 そのような場合には、パラメーターの形式に関係なく、操作記述子を使用して 呼び出されたプロシージャーに記述情報を提供することができます。 この追加情報によって、プロシージャーはストリングを正しく解釈することが できます。 操作記述子を使用するのは、呼び出されたプロシージャーに必要な場合だけに してください。
操作記述子は、プロトタイプと非プロトタイプの両方のパラメーターに要求す ることができます。 プロトタイプ呼び出しの場合、キーワード OPDESC をプロトタイプ定義に指定します。非プロトタイプ・パラメーターの場合には、CALLB 命令の命令コード拡張子と して (D) を指定します。 いずれの場合にも、操作記述子は呼び出しプロシージャーによって作成されて、 呼び出されたプロシージャーに隠されたパラメーターとして渡されます。
独自のプロシージャーに OPDESC キーワードを指定している場合には、 API を呼び出して、パラメーターの長さとタイプの情報を判別できます。 これらの API では、対象のパラメーターを識別するためのパラメーター番号を渡す必要があります。 通常は、プロトタイプまたはプロシージャー・インターフェースでパラメーターを単に数えることで、パラメーターの番号を入手できます。 ただし、RTNPARM キーワードが指定されている場合には、各パラメーターの番号が、見かけ上の番号より 1 つ大きくなります。 数値リテラルを使用せずに、特定パラメーターの番号を取得するには、%PARMNUM 組み込み関数を使用します。 詳しくは、OPDESC、RTNPARM、および %PARMNUM (パラメーター番号を戻す) を参照してください。