セッションのアクティブ化
Active は論理型のプロパティであり,セッションに関連付けられたデータベースコンポーネントとデータセットコンポーネントが開いているかどうかを表します。このプロパティを使用すると,セッションのデータベース接続とデータセット接続の現在の状態を読み出したり,変更できます。Active が False(デフォルト)の場合,セッションに関連付けられたすべてのデータベースとデータセットは閉じています。True の場合,データベースとデータセットは開いています。
セッションは,最初に作成されたときにアクティブとなり,その後は Active プロパティが False から True に変更されるとアクティブになります(たとえば,セッションに関連付けられているデータベースまたはデータセットが開かれ,そのときに開いているデータベースまたはデータセットがほかにないとき)。Active を True に設定すると,セッションの DBTables.OnStartup イベントが発生し,BDE に Paradox のディレクトリ位置が登録され,ConfigMode プロパティが登録されます。このプロパティは,セッションで利用可能な BDE エリアスを決定します。OnStartup イベントハンドラを記述すると,NetFileDir,PrivateDir,ConfigMode の各プロパティが BDE に登録される前に,それぞれを初期化することができます。OnStartup イベントハンドラには,このようなセッション開始時の特定の動作を指定できます。
セッションがアクティブになると,OpenDatabase メソッドを呼び出してそのセッションのデータベース接続を開くことができます。
データモジュールまたはフォームに入れるセッションコンポーネントの場合,開いているデータベースまたはデータセットがあるときに Active を False に設定すると,それらのデータベースやデータセットは閉じます。実行時にデータベースやデータセットを閉じると,それらに関連付けられているイベントが発生する場合があります。
メモ: デフォルトセッションの Active を設計時に False に設定することはできません。実行時にデフォルトセッションを閉じることはできますが,できるだけ閉じないでください。
デフォルトセッション以外の場合,セッションの Open メソッドと Close メソッドを使用しても,そのセッションを実行時にアクティブや非アクティブにできます。たとえば,次の 1 行のコードだけで,セッションで開いているすべてのデータベースとデータセットが閉じます。
Session1.Close;
Session1->Close();
このコードは Session1 の Active プロパティを False に設定します。セッションの Active プロパティが False の場合,その後でアプリケーションがデータベースまたはデータセットを開こうとすると,Active が True に再設定され,セッションの OnStartup イベントハンドラがある場合は,そのハンドラが呼び出されます。実行時のセッションの再アクティブ化を明示的に記述することもできます。次のコードは Session1 を再びアクティブにします。
Session1.Open;
Session1->Open();
メモ: セッションがアクティブな場合,データベース接続を個別に開いたり閉じたりすることもできます。詳細については,「データベース接続を閉じる」を参照してください。