4D Serverで、サーバマシン上で4Dコードを実行する状況が4つあります:
- トリガ
- ストアドプロシージャ
- "サーバ上で実行"属性が設定されたプロジェクトメソッド
- データベースメソッド
トリガはテーブルに付属するメソッドです。トリガを使用すれば、データベースのレコードに対して"不正な"操作が行われるのを防ぐことができます。 トリガは、偶発的にデータが失われたり、変更されたりするのを防ぐだけでなく、テーブルに対する操作を制限するための非常に強力なツールです。例えば、請 求システムにおいて、誰かが請求先である顧客を指定せずに請求書を追加するのを防止することができます。
トリガは、データベースエンジンが実際に存在するマシン上で実行されます。
4D Serverでは、トリガはクライアントマシンではなく、サーバマシン上で実行されているプロセスのコンテキストで実行されます。すなわちトリガは、デー タベース処理を呼び出したユーザプロセスに対応するサーバプロセスのコンテキストで実行されます (特にトランザクションの状態とレコードロック) が、ランゲージコンテキスト (変数、プロセス、セット、カレントセレクション) は共有しません。ただしトリガテーブルのカレントレコードはすべてのコンテキストで同じです。
トリガについては4D Language ReferenceのARRAY REALを参照してください。
4Dのストアードプロシージャは、それを起動したクライアントマシンの代わりに、サーバマシン上で実行されるプロセス内のプロセスメソッドを実行するプロジェクトメソッドです。ストアドプロシージャを参照してください。
"サーバ上で実行"の属性が指定されたプロジェクトメソッドもサーバ上で実行されます。しかしストアドプロシージャと異なり、このメソッドはクライアントプロセスに対応するサーバ上のプロセスで実行され、トリガのように、データベースコンテキストを利用できます。詳細はサーバー上で実行属性を参照してください。
4つのデータベースメソッドがサーバマシン上でのみ実行されます:
他の5つのデータベースメソッドはコンテキストに応じてサーバマシンおよびクライアントマシン両方で実行されます:
3つのデータベースメソッドはクライアントマシン上でのみ実行されます:
詳細はこのマニュアル内および4D Language Reference マニュアルのそれぞれ対応する節を参照してください。
4D Serverにおいて、セットと命名セレクションの可視範囲はそれが作成された場所 (サーバプロセスまたはクライアントプロセス) およびそのオブジェクトタイプ (ローカル、プロセス、またはインタープロセスオブジェクト) に基づきます。詳細は4D Server: セットと命名セレクションを参照してください。