データベースセッションの管理

提供: RAD Studio
移動先: 案内検索

データベース セッションの管理:インデックス への移動

メモ: ボーランド データベース エンジン(BDE)の使用は推奨されません。今後 BDE は機能拡張されません。たとえば、BDE では Unicode がサポートされていません。BDE を使用して新たに開発しないことをお勧めします。既存のデータベース アプリケーションを BDE から dbExpress に移行することを検討してください。

BDE 対応アプリケーションのデータベース接続、ドライバ、カーソル、問い合わせなどは、1 つまたは複数の BDE セッションのコンテキスト内で管理されます。セッションはデータベース接続などの一連のデータベースアクセス処理を分離しますが、アプリケーションの別のインスタンスを開始する必要はありません。

すべての BDE ベースのデータベースアプリケーションには、デフォルトの BDE セッションをカプセル化する、Bde.DBTables.Session というセッションコンポーネントが自動的に提供されます。アプリケーションにデータベースコンポーネントを追加すると、そのコンポーネントはデフォルトのセッションに自動的に関連付けられます(その SessionName は「Default」であることに注意してください)。デフォルトセッションでは、別のセッションに関連付けられていないすべてのデータベースコンポーネントを、それらが暗黙的か持続的かにかかわらず、グローバルに制御できます。暗黙的なデータベースコンポーネントは、開発者が作成するデータベースコンポーネントに関連付けられていないデータセットを開く実行時にデフォルトセッションによって作成されます。持続的なコンポーネントは、アプリケーションで明示的に作成されます。設計時にはデータモジュールまたはフォームにデフォルトセッションは表示されませんが、実行時にはコードでデフォルトセッションのプロパティやメソッドにアクセスできます。

アプリケーションが以下のことをする必要がなければ、デフォルトセッションを使用するためにコードを記述する必要はありません。

データベースコンポーネントを設計時にアプリケーションに追加するか実行時に動的に作成する場合、明確にほかのセッションに関連付けないと、それらのデータベースコンポーネントは自動的にデフォルトセッションに関連付けられます。データベースコンポーネントに関連付けられていないデータセットを開こうとすると、自動的に次の処理が行われます。

  • 実行時にそのデータセット用のデータベースコンポーネントが作成される
  • デフォルトセッションに関連付けられる
  • デフォルトセッションのプロパティに基づいてデータベースコンポーネントのいくつかの主なプロパティが初期化される。これらのプロパティの中で最も重要なのが KeepConnections です。KeepConnections は、アプリケーションがどのようなときにデータベース接続を維持または切断するかを指定します。

デフォルトのセッションは、そのままでほとんどのアプリケーションで変更することなく使用することができます。作成するデータベースコンポーネントを明示的に指定したセッションに関連付けなければならないのは、デフォルトセッションがすでに開いているデータベースに対して、そのコンポーネントが同時に問い合わせを実行する場合だけです。この場合、それぞれの問い合わせが、問い合わせ自身のセッション下で実行されなければなりません。マルチスレッドのデータベースアプリケーションではスレッドごとにセッションを持つため、この場合も複数のセッションが必要になります。

必要であればアプリケーションで追加セッションコンポーネントを作成できます。BDE ベースのデータベースアプリケーションには、すべてのセッションコンポーネントを管理できる、Bde.DBTables.Sessions というセッションリストコンポーネントが自動的に提供されます。複数セッションの管理については、「複数のセッションの管理」を参照してください。

セッションコンポーネントをデータモジュールに入れても問題はありません。ただし、セッションコンポーネントが 1 つでも含まれているデータモジュールをオブジェクトリポジトリに入れた場合、ユーザーがそれから継承するときに名前が衝突しないように、AutoSessionName プロパティを True に設定してください。

関連項目