メソッドの「サーバ上で実行」オプション
日付 | 2009/02/25 |
---|---|
ID | 09-021 |
バージョン | 11 |
プラットフォーム | Win, Mac |
4D v11 SQLから、メソッドプロパティに「サーバ上で実行」オプションが加わりました。このオプションを有効にすることで、クライアント側のプロセスで実行した場合でも、メソッドはサーバ上で動作するようになります。
例えば、サーバ側のインタープロセス変数をクライアント側にコピーしたり、サーバ側のフォルダにあるドキュメントを参照することも可能です。
とても便利な一方で、気をつけなければならないこともあります。
もしサーバ側で実行したメソッドにエラーがある場合、エラーはサーバ側でハンドリングされてしまいます。サーバ側でエラーが発生した場合には、そのプロセスはエラー処理のために「イベント待機中」となります。この状態でクライアント側の4Dを終了すると、サーバ側にプロセスが取り残されてしまうことがあります。そのような時、下のようなアラートメッセージを見ることがあるかもしれません。
このような問題を回避するためには、ON ERR CALLを使って、明示的にエラーハンドルを行う必要があります。
サーバ上で実行オプションを使う場合、ON ERR CALLを使うタイミングが重要です。クライアント側でON ERR CALLを実行しても、サーバ上で発生したエラーをハンドルすることはできません。つまり、サーバ上で実行オプションを有効にしたメソッド上でON ERR CALLを呼ばなくては意味が無いのです。
サーバ上で実行オプションを有効にしたメソッドの最初の行は、ON ERR CALLであるべきだと言っても過言ではありません。