我有 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 让我走上了正确的道路!