4

IntraWeb アプリケーションとのデータベース接続 (私の場合は Firebird) に関する情報を探しています。

特に、TDataModule で LockDataModule 関数を使用してデータベースを使用する場合と、UserSessionUnit でデータベースを使用する場合の違いを知る必要があります。たとえば、ユーザーがサーバーを使用していない場合、データベースを完全に切断する必要があり、最大で 30 人のユーザーが接続されます。

最悪の場合、古い paradox データベースに接続する必要があるかもしれません。それを処理できる構造が必要です (セッションを処理するには、WebApplication.AppID に基づいてフォルダーを生成する必要があることを知っています)。最悪の場合...

あなたが私に提供できる情報や有用なリンクを事前にありがとう^^

4

2 に答える 2

6

シナリオ 1 - Intraweb Application ウィザードで [プール データ接続] をオフのままにします。

このシナリオでは、ウィザードは を作成しますがServerController、 は作成しUserSessionませんDataModule。データベース、セッション、およびデータセット コンポーネントを に配置しUserSessionます。

新しいユーザーが Web サイトに接続するたびに、 の新しいインスタンスUserSessionが作成され、データベースへの接続が確立されます。ユーザーが非アクティブであるためにがServerController.SessionTimeOut期限切れになると、UserSessionは破棄され、データベースへの特定の接続が切断されます。

30 人の同時ユーザーの場合、このモデルはおそらく問題なく、Web サイトが使用されていないときにすべてのデータベース接続が切断されることが保証されます。

シナリオ 2 - Intraweb Application ウィザードで [プール データ接続] をオンにします。

と同様にServerControllerUserSessionウィザードは空の を作成しますDataModule。データベース、セッション、およびデータセット コンポーネントを に配置しDataModuleます。

には、プロパティをServerModule持つTIWDataModulePoolコンポーネントがありPoolCountます。

アプリケーションが起動すると、それぞれがデータベースに接続する のPoolCountインスタンスが作成されます。DataModuleページはデータベースへのアクセスを必要とするため、プールからインスタンスの 1 つを一時的に使用するために呼び出さLockDataModuleれます。UnlockDataModuleDataModule

アプリケーションを閉じるDataModuleと、プール内のインスタンスが破棄され、データベースへの接続が閉じられます。

このモデルは、ユーザーごとに開いているデータベース接続がデータベース サーバーの能力を超える場合に適しています。FireBird データベースに接続しているユーザーが 30 人しかいない場合、それが必要になるとは思えません。

于 2012-01-12T22:25:32.623 に答える
0

http://www.components4programmers.com/の kbmMW のようなコンポーネント セットの使用を検討することをお勧めします。 私はこれを何年もデスクトップ アプリで使用しており、現在は IW アプリで使用しています。アプリをサービスとして展開していますが、現在 ISAPI として展開する際にいくつかの問題があります。kbmMW は、接続プーリングなどを提供するため、多くの接続を持つアプリに適しています。多くの機能と利点があります。自分でサイトをチェックしてください。

私はエンタープライズ版を使用していますが、無料版も役に立つと思います。

乾杯!

-ルー

于 2012-06-26T16:12:42.513 に答える