バージョン 6.3.3
 —  ステートメント  —

CREATE OBJECT

CREATE OBJECT operand1 OF [CLASS] operand2
   [ON [NODE] operand3]
   [GIVING operand4]

このドキュメントでは、次のトピックについて説明します。

構文図で使用されている記号については、「構文記号」を参照してください。

関連ステートメント:DEFINE CLASS | INTERFACE | METHOD | PROPERTY | SEND METHOD

関連機能グループ:「コンポーネントベースプログラミング


機能

CREATE OBJECT ステートメントは、クラスのインスタンスを作成します。

CREATE OBJECT ステートメントを Windows 環境で実行すると、ステートメントに指定したクラスの名前が DCOM クラスとして登録されているかどうかが Natural でチェックされます。 登録されている場合は、DCOM を使用してオブジェクトを作成します。 登録されていない場合は、現在の Natural ライブラリまたは STEPLIB 内でその名前のクラスを検索し、オブジェクトをローカルに作成します。

Top of page

構文説明

オペランド定義テーブル:

オペランド 構文要素 フォーマット オペランド参照 ダイナミック定義
operand1   S                               O 不可 不可
operand2 C S       A                         不可
operand3 C S       A                         不可
operand4   S     N         I                 不可

構文要素の説明:

operand1
オブジェクトハンドル:

operand1 は、オブジェクトハンドル(HANDLE OF OBJECT)として定義する必要があります。 オブジェクトが正常に作成されると、オブジェクトハンドルには値が挿入されます。 値が正常に返されなかった場合、operand1 の値は NULL-HANDLE になります。

OF CLASSoperand2
クラス名:

operand2 は、作成するオブジェクトのクラスの名前です。 DCOM クラスとして登録されていないクラスについては、DEFINE CLASS ステートメントで定義したクラス名を割り当てる必要があります。 DCOM クラスとして登録されている名前については、クラスの ProgID またはクラス GUID のどちらかを割り当てる必要があります。 DCOM クラスとして登録される Natural クラスの場合、ProgID は DEFINE CLASS ステートメントに指定されたクラス名に対応しています。 詳細については、「Naturalでの登録」を参照してください。

CREATE OBJECT #O1 OF CLASS "Employee" or
CREATE OBJECT #O1 OF CLASS "653BCFE0-84DA-11D0-BEB3-10005A66D231"
ON NODE operand3
ノード:

operand3 には、オブジェクトが作成されるノードを指定します。 これは、クラスが DCOM クラスとして登録される場合にのみ可能です。 NODE 節を指定すると、そのノード上でオブジェクトの作成が試行されます。 NODE 節を指定しないか、または値が空白の場合、そのクラスのキー "RemoteServerName" の下にあるシステムレジストリで指定されているノード上に、オブジェクトが作成されます。 このレジストリキーが指定されていない場合、オブジェクトはローカルの Natural セッション内に作成されます。 次に例を示します。

CREATE OBJECT #O1 OF CLASS "Employee" ON NODE "volcano.iceland.com"
GIVING operand4
GIVING 節:

GIVING 節を指定した場合、operand4 の値は、エラー発生時は Natural メッセージ番号、成功時はゼロのいずれかになります。

GIVING 節を指定しない場合は、エラー発生時に Natural ランタイムエラー処理がトリガされます。

Top of page