如何在代码中设置 DBX 连接池



我有Delphi XE Professional。 它带有相当数量的DBX内容,包括包含连接池支持的DBXPool单元,但它没有XE Enterprise中提供的完整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;

编辑:如果将来有人遇到这个问题并遇到同样的问题,这是我必须如何设置它以使其正常工作。 而不是上面的最后两行,

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

感谢Sertac让我走上正确的道路!

您需要

DBXPoolConnection设置为DelegateConnection参数。

请参阅:连接池。

最新更新