У меня 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';
Спасибо Сертаку за то, что направил меня на правильный курс!