如何在代码中设置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';

感谢塞尔特克把我放在正确的道路上!


您需要将DBXPoolConnection设置为DelegateConnection参数。

请参阅:连接池。

链接地址: http://www.djcxy.com/p/58999.html

上一篇: How do I set up DBX connection pooling in code?

下一篇: ExtJS TextField Enter Key After Click External Button