4D v14サーバー上で実行属性 |
||
|
4D v14
サーバー上で実行属性
サーバー上で実行属性
"サーバー上で実行"プロジェクトメソッド属性はメソッドプロパティダイアログや属性の一括設定ダイアログを使用して設定できます: このオプションがチェックされていると、プロジェクトメソッドは、それが呼ばれる方法に関わらず、常にサーバー上で実行されます。 注: この属性はクライアント/サーバーモードの4Dアプリケーションでのみ考慮されます。 この属性が選択されている場合、そのプロジェクトメソッドの実行コンテキストはトリガーのそれと似たようなものになります (4D Serverと4Dランゲージ参照)。つまり、サーバー上で実行されるメソッドは、レコードロックやトランザクションについてクライアント側の対応する同じデータベースコンテキストを共有しますが、ランゲージコンテキスト (プロセス変数、セット、カレントセレクション) は共有しません。トリガーと異なり、サーバー上で実行されるメソッドはクライアントコンテキストのカレントレコードを共有しない点に留意してください (トリガーはトリガーテーブルのカレントレコードを共有します)。 Execute on serverコマンドと異なり、このオプションはサーバ上にプロセスを作成しません。4D Serverは、実行をリクエストしたクライアントプロセスに対応するサーバ側のクライアントプロセスを使用します。 "サーバ上で実行"属性を持つメソッドは、4Dランゲージコマンドの利用においては、ストアドプロシージャと同じルールが適用されます。サーバ上ではいくつかのコマンドの実行は許可されず、いくつかは推奨されません。詳細はストアドプロシージャ"(サーバ上で実行される) ストアドプロシージャが行わないこと"を参照してください。 変数へのポインタ (変数、配列、または配列要素) を渡した場合、参照先の値もサーバーに送信されます。サーバー上でメソッドにより参照先の値が更新されると、更新された値がクライアントに返され、クライアント側の対応する変数が更新されます。 注: このオプションはインタプリターモードとコンパイルモードで同じように動作します。 以下は"サーバ上で実行"属性が設定されたプロジェクトメソッドのコードです: C_POINTER($1) `テーブルへのポインタ クライアント側で、メソッドは以下のように呼び出されます: ARRAY TEXT(myArray;0) |
プロパティ
プロダクト: 4D ARTICLE USAGE
4D Server ( 4D v13) Parent of : サーバー上で実行属性 ( 4D Server v11 SQL Release 6) |