4D v14.3On Exitデータベースメソッド |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
On Exitデータベースメソッド
On Exitデータベースメソッド
On Exitデータベースメソッドは、データベースを終了すると一回呼び出されます。 このメソッドは、以下の4D環境で使用されます:
Note: On Exitデータベースメソッドは、4D Serverでは起動されません。 On Exitデータベースメソッドは4Dによって自動的に起動されます。プロジェクトメソッドとは異なり、プログラムからデータベースメソッドを呼び出すことはできません。しかしメソッドエディタから実行することはできます。またサブルーチンを使用できます。 データベースは、以下のうちいずれかが発生すると終了します:
データベースの終了がどのような方法で行われたかに関わらず、4Dは以下のような処理を実行します:
On Exitデータベースメソッドは、以下のような処理を実行するには最適です:
Note: On Exitデータベースメソッドがローカル/クライアントプロセスであり、データファイルにアクセスできないことを覚えておいてください。つまり、リモートモードで4Dを使用している時、On Exitデータベースメソッドで検索やソートを実行すると、4Dは "フリーズ" し、実際には終了しません。アプリケーションを終了するとき、リモートモードの4Dからデータにアクセスする必要があるならば、On Exitデータベースメソッド内から、新しいグローバルプロセスを作成してください。このグローバルプロセスはデータファイルにアクセスできます。この場合On Exitデータベースメソッドの終了前に、新しいプロセスが正しく終了されたことを (インタープロセス変数を使用するなどして) 確認してください。 以下の例では、作業セッション中に発生する重要なイベントを追跡し、その説明を“Journal”という名前のテキストドキュメントに書き込むすべてのメソッドをカバーします。 - On Startupデータベースメソッドは、インタープロセス変数vbQuit4Dを初期化します。この変数は、すべての使用プロセスに、データベースが終了中であるか通知するために使用されます。またこのメソッドは、ジャーナルファイルが存在しない場合にはそれを作成します。 ` On Startup データベースメソッド - WRITE JOURNALプロジェクトメソッドは、他のメソッドからサブルーチンとして使用され、ジャーナルファイルに受け取った情報を書き込みます: ` WRITE JOURNAL プロジェクトメソッド ドキュメントが毎回開かれ閉じられることに注目してください。さらにドキュメントへのアクセス保護としてセマフォを利用していることにも注目してください。2つのプロセスがジャーナルファイルに同時にアクセスすることを防ぐためです。 - M_ADD_RECORDSプロジェクトメソッドは、アプリケーションモードでレコード追加メニュー項目が選択されると実行されます: ` M_ADD_RECORDS プロジェクトメソッド このメソッドは、ユーザが最後のデータ入力をキャンセルするか、またはデータベースを終了するまでループします。 - [Table 1]の入力フォームには、On Outside Callイベントの処理手順も含まれています。したがって、プロセスがデータ入力中であっても、ユーザは現在のデータ入力を保存するかまたは保存しないで、スムーズに終了できます: ` [Table1];"Input" フォームメソッド - M_QUITプロジェクトメソッドは、アプリケーションモードでファイルメニューから終了が選択されると実行されます: ` M_QUIT プロジェクトメソッド このメソッドには、ある仕掛けがあります。QUIT 4Dが呼び出されると、コマンドは即座に効果があります。したがって、呼び出しが発行されたプロセスは、データベースが実際に終了されるまでの間は“停止モード”になります。このプロセスは、データ入力が行われているプロセスの可能性があるため、QUIT 4Dの呼び出しは、この目的にだけ開始されるローカルプロセス内で実行されます。DO_QUITメソッドは、以下のようになります: ` DO_QUIT プロジェクトメソッド - 最後に、すべての開いているユーザプロセスに対して“ただちに終了するよう”通知するOn Exitデータベースメソッドは、以下のようになります。このメソッドは、vbQuit4DをTrueに設定し、データ入力を実行しているユーザプロセスに、プロセス間メッセージを送信します: ` On Exit データベースメソッド Note: "ML_..."または"M_..."で始まる名前を持つプロセスは、新規プロセス開始プロパティを選択したメニューによって開始されます。この例では、そのようなプロセスは、レコード追加メニューが選択された時に開始されたプロセスです。 (Current time-$vhStart)>=?00:01:00?という判定式により、データベースメソッドは“他のプロセスを待っている”状態を終了します。他のプロセスがただちに反応しない場合には、ループを繰り返します。 ・次に示しているのは、データベースによって作成されたジャーナルファイルの代表的な例です:
Note: $xxという名前は、On Exitデータベースメソッドを実行するために4Dが開始したローカルプロセスの名前です。 |
プロパティ
プロダクト: 4D
履歴
初出: 参照 ARTICLE USAGE
ランゲージリファレンス ( 4D v11 SQL Release 6) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||