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