4D Serverでコンポーネントメソッドを実行する方法
日付 | 2009/06/26 |
---|---|
ID | 75811 (英語原文参照) |
バージョン | 11.4 |
プラットフォーム | Mac & Win |
4D Serverでコンポーネントメソッドを実行する方法はいくつか存在します。まず、ホストデータベースのメソッドからコンポーネントメソッドを呼び出すのであれば、ホストデータベースをメソッドを普通に呼び出すように、Execute on server関数でそのコンポーネントメソッドを実行します。
もし、あるコンポーネントメソッドから別のコンポーネントメソッドを呼び出し、しかも4D Serverで実行するのであれば、次のいずれかの方法が考えられます。
1. コンポーネントメソッドでExecute on serverを使用して別のコンポーネントメソッドを実行する。
2. メソッドプロパティの「サーバで実行」を有効にする。
たとえば、コンポーネントにふたつのメソッド、MC_execute_on_serverとMC_Method1が存在したとしましょう。ホストデータベースはMC_Method1を実行し、次いでMC_Method1がMC_execute_on_serverをサーバで実行するという構図です。
MC_execute_on_serverには簡単なコードが記述されています。
` MC_execute_on_server method ` brings up an alert on 4D Server ALERT("Hello ON SERVER from my component!")
前者の方法を採用するのであれば、これを呼び出すMC_Method1は次のようになります。
C_LONGINT($proc) $proc:=Execute on server("MC_execute_on_server";128000;"server_proc_from_component")
この場合、MC_execute_on_serverは「コンポーネントとホストで共有する」設定になっていなければなりません。
一方、後者を採用するのであれば、「コンポーネントとホストで共有する」設定は不要であり、その代わりに「サーバで実行」プロパティを有効にすることになります。そしてMC_Method1は次のようになります。
MC_execute_on_server
コードはシンプルになりますが、MC_execute_on_serverはかならずサーバで実行されるメソッドになります。この場合、MC_execute_on_serverは、ホストデータベースと共有する必要がないので、ホストデータベースからは隠されたメソッドにすることができます。