Как настроить пул соединений DBX в коде?

У меня Delphi XE Professional. Он поставляется с большим количеством компонентов DBX, включая модуль DBXPool, который содержит поддержку пула соединений, но не имеет полной поддержки DBX, которая есть в XE Enterprise. В частности, отсутствует большая часть поддержки во время разработки.

Я не особо против этого. Я мог делать все, что мне нужно, без него, пока мне не понадобился пул соединений. Теперь я пытаюсь заставить это работать, и я не могу понять, как заставить это работать. Я могу добавить 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;

РЕДАКТИРОВАТЬ: Если кто-то столкнется с этим в будущем и у него возникнет та же проблема, вот как мне нужно было настроить его, чтобы он работал правильно. Вместо последних двух строк выше,

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

Спасибо Сертаку за то, что направил меня на правильный курс!


person Mason Wheeler    schedule 18.04.2012    source источник
comment
Возможно ли, что, хотя устройство поставляется с XE pro, оно не работает (поскольку библиотеки/dll DBX не включают эту функцию в этом SKU?)   -  person Warren P    schedule 19.04.2012
comment
Я никогда не делал ничего подобного, но из того, что я читал, я помню параметр DelegateConnection. Здесь говорится, что ему должно быть назначено "DBXPoolConnection".   -  person Sertac Akyuz    schedule 19.04.2012
comment
@Сертак: Ага! Вот чего мне не хватало. Я читал это, но не совсем понял, какие части к чему относятся. У меня это работает сейчас. Спасибо! Если вы опубликуете это как ответ, я приму это.   -  person Mason Wheeler    schedule 19.04.2012
comment
@Mason - Добро пожаловать!   -  person Sertac Akyuz    schedule 19.04.2012
comment
@Mason, какой драйвер Firebird ты используешь? У меня сложилось впечатление, что драйвер DBX для Firebird не поддерживается в Профессиональной версии... Для этого драйвера нужно было приобрести Enterprise или выше.   -  person Michael Riley - AKA Gunny    schedule 04.07.2012
comment
@CapeCodGunny: водитель, созданный Чау Чи Янгом.   -  person Mason Wheeler    schedule 04.07.2012


Ответы (1)


Вам нужно установить параметр DBXPoolConnection в DelegateConnection.

См. раздел Объединение соединений.

person Sertac Akyuz    schedule 18.04.2012