2012-04-18 4 views
7

私はDelphi XE Professionalを持っています。これには、接続プーリングのサポートを含むDBXPoolユニットを含むかなりの量のDBXが付属しますが、XE Enterpriseに完全なDBXサポートはありません。特に、多くの設計時サポートは存在しません。コードでDBX接続プーリングを設定するにはどうすればよいですか?

私は特に気にしません。私は接続プーリングが必要になるまで、私が必要としていたすべてのものを、それなしでやり遂げることができました。今私はそれを働かせようとしているし、それをうまく動作させる方法を理解できない。 DBXPoolを自分のプログラムに追加して、それが初期化されていることを確認することができますが、データベースリクエストを作成すると、TDBXPoolConnection.Createは呼び出されません。

ここに、BeforeConnectイベントハンドラの接続用のセットアップコードがあります。私が間違ってやっていることを誰もが知っているし、それを正しくする方法は?

procedure TMyDataModule.connectionBeforeConnect(Sender: TObject); 
begin 
    connection.DriverName := 'Firebird'; 
    connection.Params.Values['User_Name'] := FUserName; 
    connection.Params.Values['Password'] := FPassword; 
    connection.Params.Values['Database'] := FDatabasePath; 
    connection.Params.Values['ServerCharSet'] := 'UTF8'; 
    connection.Params.values['DelegateName'] := 'DBXPool'; 
    connection.Params.values['DelegateConnection.MaxConnections'] := '32'; 
end; 

EDIT:誰もが将来的にこの出くわすと同じ問題を抱えている場合は、ここで私はそれが正しい動作させるためにそれを設定しなければならなかった方法です。上記の最後の2行ではなく、

connection.Params.values['DelegateConnection'] := 'DBXPoolConnection'; 
connection.Params.values['DBXPoolConnection.DriverName'] := 'DBXPool'; 
connection.Params.values['DBXPoolConnection.MaxConnections'] := '32'; 

正しいコースに私を置いてくれてありがとう!

+0

このユニットはXE Proに付属している間は機能しません(DBXライブラリ/ dllはこのSKUでこの機能を有効にしていないためです)。 –

+0

私はこれまで類似していませんでしたが、 'v read私は "DelegateConnection"パラメータを思い出します。 [Here](http://docwiki.embarcadero.com/RADStudio/ja/Connection_Pooling_%28Delegate_Drivers_tutorial%29)には、 'DBXPoolConnection'が割り当てられている必要があります。 –

+0

@セクタック:ああ!それが私が欠けていたものです。私はそれを読んでいましたが、どの部分がどこに適用されたのかはよくわかりませんでした。私は今働いている。ありがとう!それを回答として投稿すれば、私はそれを受け入れます。 –

答えて

4

DBXPoolConnectionDelegateConnectionのパラメータを設定する必要があります。

参照:Connection Pooling

関連する問題